diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d6aca2b..056674f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,18 @@ #Changelog +* 1.2.0 + * Features + * Added icon for wardec check to xup page + - red = active wardec + - orange = wardec starting soon + - ? = there was an error checking + * Fixes + * Fixed a bug with not applying the right default theme + * An id being used double on main page + * updated editabletables code to hopefully workaround some bugs + - this should also enable sorting by names + * Changes + * Database access has all been converted to using ORM + * Other db reladed changes to better support different databases (like pgsql) * 1.1.4 * Fixes * Fixed error handling for invalidated refresh tokens diff --git a/README.md b/README.md index c5c8c288..0ce3021e 100644 --- a/README.md +++ b/README.md @@ -67,3 +67,25 @@ For the minification used javascript libs are `bable` and `babili`, which are bo A small [usage guide](https://speedprog.github.io/eve-inc-waitlist-docs/) can be found [here](https://speedprog.github.io/eve-inc-waitlist-docs/) You can contribute to the guide buy forking [the guide](https://github.com/SpeedProg/eve-inc-waitlist-docs) and sending pull requests Please edit the tex only and not the html! HTML modifications will not be accepted + +# Upgrading + +## Special Version Upgrades +Pre 1.2.0: +Prior to this version only MySQL(and MariaDB) where supported, because of this the needed migration script only supports these databases but should be easily adjustable for others. + +If you are upgrading from a version prior to 1.2.0 you need to upgrade you database up to 1.1.4 using the normal migration manager method. + +Then you need to run the `mysql_upgrade_1.1.4_to_1.2.0.py` script that can be found inside the `migrations` directory. +You need to adjust the name of the database inside the script. + +Do this from the base waitlist directory you would start `main.py` from. E.g.: `python migrations/mysql_upgrade_1.1.4_to_1.2.0.py`. + +The script will errors about trying to drop a primary index that doesn't exist. +I am just trying to drop them in case some one created them manually for some reason. Checking if they exists would just wast time. + +After this you can download the current version and use the migration manager again. + + +## Normal Upgrades +run `python manager.py db upgrade` and make sure new options added to `config.cfg` are present in your config file. \ No newline at end of file diff --git a/create_admin.py b/create_admin.py index 2d1f31bb..52f8b4fb 100644 --- a/create_admin.py +++ b/create_admin.py @@ -1,12 +1,14 @@ # inject the lib folder before everything else +from typing import Optional + from waitlist import db from waitlist.permissions.manager import StaticRoles from waitlist.utility.swagger.patch import monkey_patch_pyswagger_requests_client monkey_patch_pyswagger_requests_client() -from waitlist.storage.database import Account, Character, Role +from waitlist.storage.database import Account, Character, Role, APICacheCharacterInfo from waitlist.utility.utils import get_random_token -from waitlist.utility.swagger import character_info +import waitlist.utility.outgate as outgate if __name__ == '__main__': name = input("Login Name:") print("Creating Account") @@ -27,7 +29,10 @@ if not char_name: break - char_id, char_name = character_info.characterid_from_name(char_name) + char_info: Optional[APICacheCharacterInfo] = outgate.character.get_info_by_name(char_name) + char_id = char_info.id + # assign this too because his name could have had wrong case + char_name = char_info.characterName character: Character = db.session.query(Character).get(char_id) if character is None: character = Character() diff --git a/migrations/env.py b/migrations/env.py index cb981654..23663ff2 100644 --- a/migrations/env.py +++ b/migrations/env.py @@ -57,7 +57,7 @@ def run_migrations_online(): # this callback is used to prevent an auto-migration from being generated # when there are no changes to the schema - # reference: http://alembic.readthedocs.org/en/latest/cookbook.html + # reference: http://alembic.zzzcomputing.com/en/latest/cookbook.html def process_revision_directives(context, revision, directives): if getattr(config.cmd_opts, 'autogenerate', False): script = directives[0] @@ -71,7 +71,6 @@ def process_revision_directives(context, revision, directives): connection = engine.connect() context.configure(connection=connection, -# compare_type=True, target_metadata=target_metadata, process_revision_directives=process_revision_directives, **current_app.extensions['migrate'].configure_args) diff --git a/migrations/mysql_upgrade_1.1.4_to_1.2.0.py b/migrations/mysql_upgrade_1.1.4_to_1.2.0.py new file mode 100644 index 00000000..3f36c130 --- /dev/null +++ b/migrations/mysql_upgrade_1.1.4_to_1.2.0.py @@ -0,0 +1,811 @@ +""" +This script is for updating datbases of v1.1.4 +to v1.2.0. +This script is only meant for MySQL and MariaDB databases. +In this version the constraints and indexes have fixed names. +Also all column name are now lower case +This is to make sure migration scripts work between different databases. +""" +import datetime +import re +from typing import List, Union + +from alembic.operations import Operations +from alembic.runtime.migration import MigrationContext +from sqlalchemy import text, Column, String +from sqlalchemy.engine import ResultProxy, RowProxy +from alembic import op + +from waitlist import db + +#modify these values +database_name = "waitlist" +#don't modify any other values + +alembic_version = '23de9b7d3697' + +sql_get_column_names: text = text(""" + SELECT COLUMN_NAME, DATA_TYPE, COLUMN_TYPE, CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION, IS_NULLABLE, EXTRA + FROM + INFORMATION_SCHEMA.COLUMNS + WHERE + TABLE_SCHEMA = :dbname + AND + TABLE_NAME = :tablename; +""") + +mysql_rename_column: str = """ + ALTER TABLE %s CHANGE `%s` `%s` %s; +""" + +mysql_show_index: str = """ +SHOW INDEX FROM `%s`; +""" + +mysql_drop_index: str = """ +ALTER TABLE `%s` DROP INDEX `%s`; +""" + +mysql_show_fk: str = """ +SELECT * FROM information_schema.TABLE_CONSTRAINTS +WHERE information_schema.TABLE_CONSTRAINTS.CONSTRAINT_TYPE = 'FOREIGN KEY' +AND information_schema.TABLE_CONSTRAINTS.TABLE_SCHEMA = '%s' +AND information_schema.TABLE_CONSTRAINTS.TABLE_NAME = '%s'; +""" + +mysql_drop_fk: str = """ +ALTER TABLE `%s` DROP FOREIGN KEY `%s`; +""" + +mariadb_show_check: str = """ +SELECT * FROM information_schema.TABLE_CONSTRAINTS +WHERE information_schema.TABLE_CONSTRAINTS.CONSTRAINT_TYPE = 'CHECK' +AND information_schema.TABLE_CONSTRAINTS.TABLE_SCHEMA = '%s' +AND information_schema.TABLE_CONSTRAINTS.TABLE_NAME = '%s'; +""" + +mariadb_drop_check: str = """ +ALTER TABLE `%s` DROP CONSTRAINT `%s`; +""" + +table_names: List[str] = ['account_notes', 'account_roles', 'accounts', 'alembic_version', 'apicache_allianceinfo', + 'apicache_characteraffiliation', 'apicache_characterinfo', 'apicache_corporationinfo', + 'backseats', 'ban', 'calendar_backseat', 'calendar_category', 'calendar_event', + 'calendar_organizer', 'ccvote', 'characters', 'comp_history', 'comp_history_ext_inv', + 'comp_history_fits', 'constellation', 'crest_fleets', 'eveapiscope', 'event_history_entries', + 'event_history_info', 'event_history_types', 'fcs', 'feedback', 'fit_module', 'fittings', + 'fleetmanager', 'incursion_layout', 'invmarketgroups', 'invtypes', 'linked_chars', + 'permission_roles', 'permissions', 'role_changes', 'roles', 'settings', 'solarsystem', + 'ssotoken', 'station', 'tickets', 'tokenscope', 'trivia', 'trivia_answer', 'trivia_question', + 'trivia_submission', 'trivia_submission_answer', 'ts_dati', 'waitlist_entries', + 'waitlist_entry_fits', 'waitlist_groups', 'waitlists', 'whitelist'] + +addTo = None +doFk = False + + +def get_type(column_info: RowProxy): + extra_info: Union[None, str] = '' + data_type = column_info['COLUMN_TYPE'] + is_auto_increment = False + """ + if colum_info['CHARACTER_MAXIMUM_LENGTH'] is not None: + extra_info = '('+str(colum_info['CHARACTER_MAXIMUM_LENGTH'])+')' + elif colum_info['NUMERIC_PRECISION'] is not None: + extra_info = '(' + str(colum_info['NUMERIC_PRECISION']) + ')' + """ + if (column_info['IS_NULLABLE'] == "NO"): + extra_info += ' NOT NULL' + if column_info['EXTRA'] is not None and 'auto_increment' in column_info['EXTRA']: + is_auto_increment = True + return (data_type + ('' if extra_info is None else extra_info )), is_auto_increment + + +re_id = re.compile(r'(?!^|_)id$', re.IGNORECASE) + +translation_table = { + 'newbro': 'new_bro', + 'odering': 'ordering' +} + +def get_new_column_name(oldname: str): + if oldname in translation_table: + return translation_table[oldname] + + _origName = oldname + oldname = re.sub(re_id, '_id', oldname) + oldname = convert_case(oldname) + #print(f"Changed {_origName} => {oldname}") + return oldname + + +def upgrade(): + global addTo + global doFk + + print('Exception no missing primary keys that we try to drop are expected to happen, please ignore') + with db.engine.connect() as con: + # lets see if this is a mariadb that supports check + check_supported = supports_check(con) + + print('Dropping all Foreign Keys...') + for table_name in table_names: + # drop foreign keys + try: + fk_dbinfos: ResultProxy = con.execute(mysql_show_fk % (database_name, table_name)) + for fk_dbinfo in fk_dbinfos: + key_name = fk_dbinfo['CONSTRAINT_NAME'] + statement = mysql_drop_fk % (table_name, key_name) + #print(f'Executing: {statement.strip()}') + con.execute(statement) + except Exception as e: + print(e) + + print('Dropping all Foreign Keys Done') + + + # drop checks + # mysql (as of now) ignores check as well as mariadb < 10.2.1 + if check_supported: + print('Dropping Check Constraints...') + for table_name in table_names: + # drop foreign keys + try: + ck_dbinfos: ResultProxy = con.execute(mariadb_show_check % (database_name, table_name)) + for ck_dbinfo in ck_dbinfos: + key_name = ck_dbinfo['CONSTRAINT_NAME'] + statement = mariadb_drop_check % (table_name, key_name) + #print(f'Executing: {statement.strip()}') + con.execute(statement) + except Exception as e: + print(e) + + print('Dropping Check Constraints Done') + + + # rename all the columns + # this also removes auto increment :) + print('Renaming Columns...') + tables_with_auto_increment = [] + for table_name in table_names: + columns_with_auto_increment = [] + table_columns: ResultProxy = db.engine.execute(sql_get_column_names, + dbname=database_name, tablename=table_name) + columns: List[List[str, str]] = [] + for column_info in table_columns: + type, auto_increment = get_type(column_info) + if auto_increment: + columns_with_auto_increment.append([column_info['COLUMN_NAME'], type + " AUTO_INCREMENT"]) + + columns.append([column_info['COLUMN_NAME'], type]) + table_columns.close() + + for column_info in columns: + new_column_name = get_new_column_name(column_info[0]) + mysql_alter = mysql_rename_column % (table_name, column_info[0], new_column_name, column_info[1]) + #print(f'Executing: {mysql_alter.strip()}') + con.execute(mysql_alter) + + if len(columns_with_auto_increment) > 0: + tables_with_auto_increment.append([table_name, columns_with_auto_increment]) + + print("Renaming Columns Done") + + # now that auto_increment is gone, we can drop all indexes + + # drop all the primary keys + print('Dropping Primary Keys...') + mysql_drop_pk: str = """ + ALTER TABLE `%s` DROP PRIMARY KEY; + """ + for table_name in table_names: + # there might be lots of exceptions where when no primary key exists, just ignore + try: + statement = mysql_drop_pk % (table_name,) + #print(f'Executing: {statement.strip()}') + con.execute(statement) + except Exception as e: + print(e) + + print('Dropping Primary Keys Done') + + # drop indices + print('Dropping Indices..') + for table_name in table_names: + + index_dbinfos: ResultProxy = con.execute(mysql_show_index % table_name) + # for some reason PRIMARY is in there multiple times, sometimes + removed_index: set = set() + for index_dbinfo in index_dbinfos: + try: + index_name = index_dbinfo['Key_name'] + if index_name in removed_index: + continue + statement = mysql_drop_index % (table_name, index_name) + #print(f'Executing: {statement.strip()}') + con.execute(statement) + removed_index.add(index_name) + except Exception as e: + print(e) + + print('Dropping Indices Done') + + + # create contexts for alembic + mig_context = MigrationContext.configure(connection=con, dialect_name='mysql', + opts={'target_metadata': db.metadata}) + + + with Operations.context(mig_context): + doFk = False + print('Creating Primary Keys and Indices and Checks...') + add_keys_and_constraits() + print('Creating Primary Keys and Indices and Checks Done') + + # lets add the new column first + print('Adding new colum to waitlists table...') + with op.batch_alter_table('waitlists') as batch: + batch.add_column(Column('waitlist_type', String(20))) + + print('Adding new colum to waitlists table Done') + + # now get waitlist groups + mysql_get_wl_groups: str = """ + SELECT xupwl_id, logiwl_id, dpswl_id, sniperwl_id, otherwl_id + FROM `%s`; + """ + groups_result: ResultProxy = con.execute(mysql_get_wl_groups % ('waitlist_groups')) + + mysql_set_wl_type: str = """ + UPDATE `waitlists` + SET waitlist_type = '%s' + WHERE id = %s; + """ + + print('Setting new waitlists column from old references...') + for group_info in groups_result: + for name in ['xupwl_id', 'logiwl_id', 'dpswl_id', 'sniperwl_id', 'otherwl_id']: + if group_info[name] is not None: + # we got the id here + statement = mysql_set_wl_type % (name.replace('wl_id', ''), group_info[name]) + #print(statement) + con.execute(statement) + + # now all the waitlists should know their type + print('Setting new waitlists column from old references Done') + + # we can remove the columns 'xupwl_id', 'logiwl_id', 'dpswl_id', 'sniperwl_id', 'otherwl_id' now + print('Removing old reference columns from waitlist_groups tables...') + with op.batch_alter_table('waitlist_groups') as batch: + for column_name in ['xupwl_id', 'logiwl_id', 'dpswl_id', 'sniperwl_id', 'otherwl_id']: + batch.drop_column(column_name) + + print('Removing old reference columns from waitlist_groups tables Done') + + # UniqueConstraint('group_id', 'waitlist_type') + print('Adding Unique constraint for new waitlists column...') + with op.batch_alter_table('waitlists') as batch: + batch.create_unique_constraint(constraint_name='uq_waitlists_group_id_waitlist_type', columns=['group_id', 'waitlist_type']) + + print('Adding Unique constraint for new waitlists column Done') + + # lets readd autoincrement columns + print('Readding AUTO_INCREMENT to columns where it got removed earlier...') + for table_data in tables_with_auto_increment: + table_name = table_data[0] + + for column_info in table_data[1]: + new_column_name = get_new_column_name(column_info[0]) + print(f'Working on Table {table_name}.{new_column_name}') + mysql_alter = mysql_rename_column % (table_name, new_column_name, new_column_name, column_info[1]) + #print(mysql_alter) + con.execute(mysql_alter) + print('Readding AUTO_INCREMENT to columns where it got removed earlier... Done') + + doFk = True + print('Readding Foreign Keys...') + add_keys_and_constraits() + print("Readding Foreign Keys Done") + + # now that we are done, set the alembic version + print('Setting Alembic version') + mysql_set_alembic_version: str = """ + DELETE FROM alembic_version; + INSERT INTO alembic_version VALUES ('%s'); + """ + con.execute(mysql_set_alembic_version % (alembic_version,)) + + print(f"Changed alembic_version to {alembic_version}") + + +def supports_check(con) -> bool: + result: ResultProxy = con.execute('SELECT VERSION();') + if result.rowcount != 1: + return False + + first_row: RowProxy = result.first() + version_string: str = first_row['VERSION()'] + # MariaDB supports this since 10.2.1 + # other version (mysql too) just ignore it, so we can't check to see if it errors + if 'MariaDB' in version_string: + version_string = version_string.replace('-MariaDB', '') + nums = version_string.split('.') + if len(nums) < 3: + return False + + if int(nums[0]) > 10: + return True + + if int(nums[0]) == 10: + if int(nums[1]) > 2: + return True + if int(nums[1]) == 2: + if int(nums[2]) >= 1: + return True + + return False + + + + +def create_index(name, table_name, column_name, unique=False): + if not doFk: + addTo.create_index(name, column_name, unique=unique) + + +def UniqueConstraint(column, name=None): + if not doFk: + addTo.create_unique_constraint(constraint_name=name, columns=[column]) + + +def PrimaryKeyConstraint(*columns, name=None): + if not doFk: + addTo.create_primary_key(name, columns) + + +def ForeignKeyConstraint(own_columns: List[str], other_ids: List[str], name=None, onupdate=None, ondelete=None): + if doFk: + split_targetid= other_ids[0].split('.') + target_table = split_targetid[0] + target_column = split_targetid[1] + addTo.create_foreign_key(name, target_table, own_columns, [target_column], onupdate=onupdate, ondelete=ondelete) + + + +def add_keys_and_constraits(): + global addTo + with op.batch_alter_table('account_notes') as batch: + addTo = batch + if doFk: + batch.create_foreign_key(op.f('fk_account_notes_account_id_accounts'), + 'accounts', + ['account_id'], ['id']) + batch.create_foreign_key(op.f('fk_account_notes_by_account_id_accounts'), + 'accounts', + ['by_account_id'], ['id']) + else: + PrimaryKeyConstraint('entry_id', name=op.f('pk_account_notes')) + batch.create_index(op.f('ix_account_notes_time'), ['time'], unique=False) + + with op.batch_alter_table('account_roles') as batch: + addTo = batch + if doFk: + batch.create_foreign_key(op.f('fk_account_roles_account_id_accounts'), + 'accounts', + ['account_id'], ['id'], + onupdate='CASCADE', ondelete='CASCADE') + batch.create_foreign_key(op.f('fk_account_roles_role_id_roles'), + 'roles', + ['role_id'], ['id'], + onupdate='CASCADE', ondelete='CASCADE') + + with op.batch_alter_table('accounts') as batch: + addTo = batch + ForeignKeyConstraint(['current_char'], ['characters.id'], + name=op.f('fk_accounts_current_char_characters')) + PrimaryKeyConstraint('id', name=op.f('pk_accounts')) + UniqueConstraint('login_token', name=op.f('uq_accounts_login_token')) + UniqueConstraint('username', name=op.f('uq_accounts_username')) + + with op.batch_alter_table('apicache_allianceinfo') as batch: + addTo = batch + PrimaryKeyConstraint('id', name=op.f('pk_apicache_allianceinfo')) + if not doFk: + batch.create_index(op.f('ix_apicache_allianceinfo_alliance_name'), ['alliance_name'], + unique=False) + batch.create_index(op.f('ix_apicache_allianceinfo_executor_corp_id'), + ['executor_corp_id'], unique=False) + + with op.batch_alter_table('apicache_characteraffiliation') as batch: + addTo = batch + PrimaryKeyConstraint('id', name=op.f('pk_apicache_characteraffiliation')) + create_index(op.f('ix_apicache_characteraffiliation_alliance_id'), 'apicache_characteraffiliation', + ['alliance_id'], unique=False) + create_index(op.f('ix_apicache_characteraffiliation_alliance_name'), 'apicache_characteraffiliation', + ['alliance_name'], unique=False) + create_index(op.f('ix_apicache_characteraffiliation_corporation_id'), 'apicache_characteraffiliation', + ['corporation_id'], unique=False) + create_index(op.f('ix_apicache_characteraffiliation_corporation_name'), 'apicache_characteraffiliation', + ['corporation_name'], unique=False) + create_index(op.f('ix_apicache_characteraffiliation_name'), 'apicache_characteraffiliation', ['name'], + unique=False) + + with op.batch_alter_table('apicache_characterinfo') as batch: + addTo = batch + PrimaryKeyConstraint('id', name=op.f('pk_apicache_characterinfo')) + create_index(op.f('ix_apicache_characterinfo_corporation_id'), 'apicache_characterinfo', + ['corporation_id'], unique=False) + + with op.batch_alter_table('apicache_corporationinfo') as batch: + addTo = batch + PrimaryKeyConstraint('id', name=op.f('pk_apicache_corporationinfo')) + create_index(op.f('ix_apicache_corporationinfo_alliance_id'), 'apicache_corporationinfo', + ['alliance_id'], unique=False) + create_index(op.f('ix_apicache_corporationinfo_name'), 'apicache_corporationinfo', ['name'], + unique=False) + + with op.batch_alter_table('backseats') as batch: + addTo = batch + ForeignKeyConstraint(['account_id'], ['accounts.id'], name=op.f('fk_backseats_account_id_accounts'), + ondelete='CASCADE'), + ForeignKeyConstraint(['group_id'], ['waitlist_groups.group_id'], + name=op.f('fk_backseats_group_id_waitlist_groups'), ondelete='CASCADE') + + with op.batch_alter_table('ban') as batch: + addTo = batch + ForeignKeyConstraint(['admin'], ['characters.id'], name=op.f('fk_ban_admin_characters')), + PrimaryKeyConstraint('id', name=op.f('pk_ban')) + create_index(op.f('ix_ban_name'), 'ban', ['name'], unique=False) + + with op.batch_alter_table('calendar_backseat') as batch: + addTo = batch + ForeignKeyConstraint(['account_id'], ['accounts.id'], + name=op.f('fk_calendar_backseat_account_id_accounts'), onupdate='CASCADE', + ondelete='CASCADE'), + ForeignKeyConstraint(['event_id'], ['calendar_event.event_id'], + name=op.f('fk_calendar_backseat_event_id_calendar_event'), onupdate='CASCADE', + ondelete='CASCADE') + + with op.batch_alter_table('calendar_category') as batch: + addTo = batch + PrimaryKeyConstraint('category_id', name=op.f('pk_calendar_category')) + create_index(op.f('ix_calendar_category_category_name'), 'calendar_category', ['category_name'], + unique=False) + + with op.batch_alter_table('calendar_event') as batch: + addTo = batch + ForeignKeyConstraint(['approver_id'], ['accounts.id'], name=op.f('fk_calendar_event_approver_id_accounts'), + onupdate='CASCADE', ondelete='CASCADE') + ForeignKeyConstraint(['event_category_id'], ['calendar_category.category_id'], + name=op.f('fk_calendar_event_event_category_id_calendar_category'), onupdate='CASCADE', + ondelete='CASCADE') + ForeignKeyConstraint(['event_creator_id'], ['accounts.id'], + name=op.f('fk_calendar_event_event_creator_id_accounts'), onupdate='CASCADE', + ondelete='CASCADE') + PrimaryKeyConstraint('event_id', name=op.f('pk_calendar_event')) + + create_index(op.f('ix_calendar_event_event_approved'), 'calendar_event', ['event_approved'], unique=False) + create_index(op.f('ix_calendar_event_event_category_id'), 'calendar_event', ['event_category_id'], unique=False) + create_index(op.f('ix_calendar_event_event_creator_id'), 'calendar_event', ['event_creator_id'], unique=False) + create_index(op.f('ix_calendar_event_event_time'), 'calendar_event', ['event_time'], unique=False) + + with op.batch_alter_table('calendar_organizer') as batch: + addTo = batch + ForeignKeyConstraint(['account_id'], ['accounts.id'], name=op.f('fk_calendar_organizer_account_id_accounts'), + onupdate='CASCADE', ondelete='CASCADE') + ForeignKeyConstraint(['event_id'], ['calendar_event.event_id'], + name=op.f('fk_calendar_organizer_event_id_calendar_event'), onupdate='CASCADE', + ondelete='CASCADE') + + with op.batch_alter_table('ccvote') as batch: + addTo = batch + ForeignKeyConstraint(['fcvote_id'], ['accounts.id'], name=op.f('fk_ccvote_fcvote_id_accounts')) + ForeignKeyConstraint(['lmvote_id'], ['accounts.id'], name=op.f('fk_ccvote_lmvote_id_accounts')) + ForeignKeyConstraint(['voter_id'], ['characters.id'], name=op.f('fk_ccvote_voter_id_characters')) + PrimaryKeyConstraint('ccvote_id', name=op.f('pk_ccvote')) + + with op.batch_alter_table('characters') as batch: + addTo = batch + PrimaryKeyConstraint('id', name=op.f('pk_characters')) + + with op.batch_alter_table('comp_history') as batch: + addTo = batch + ForeignKeyConstraint(['source_id'], ['accounts.id'], name=op.f('fk_comp_history_source_id_accounts')) + ForeignKeyConstraint(['target_id'], ['characters.id'], name=op.f('fk_comp_history_target_id_characters')) + PrimaryKeyConstraint('history_id', name=op.f('pk_comp_history')) + create_index(op.f('ix_comp_history_time'), 'comp_history', ['time'], unique=False) + + with op.batch_alter_table('comp_history_ext_inv') as batch: + addTo = batch + ForeignKeyConstraint(['history_id'], ['comp_history.history_id'], + name=op.f('fk_comp_history_ext_inv_history_id_comp_history')) + ForeignKeyConstraint(['waitlist_id'], ['waitlists.id'], + name=op.f('fk_comp_history_ext_inv_waitlist_id_waitlists')) + PrimaryKeyConstraint('invite_ext_id', name=op.f('pk_comp_history_ext_inv')) + + with op.batch_alter_table('comp_history_fits') as batch: + addTo = batch + ForeignKeyConstraint(['fit_id'], ['fittings.id'], name=op.f('fk_comp_history_fits_fit_id_fittings')) + ForeignKeyConstraint(['history_id'], ['comp_history.history_id'], + name=op.f('fk_comp_history_fits_history_id_comp_history')) + PrimaryKeyConstraint('id', name=op.f('pk_comp_history_fits')) + + with op.batch_alter_table('constellation') as batch: + addTo = batch + PrimaryKeyConstraint('constellation_id', name=op.f('pk_constellation')) + create_index(op.f('ix_constellation_constellation_name'), 'constellation', ['constellation_name'], + unique=True) + + with op.batch_alter_table('crest_fleets') as batch: + addTo = batch + ForeignKeyConstraint(['comp_id'], ['accounts.id'], name=op.f('fk_crest_fleets_comp_id_accounts')) + ForeignKeyConstraint(['group_id'], ['waitlist_groups.group_id'], + name=op.f('fk_crest_fleets_group_id_waitlist_groups')) + PrimaryKeyConstraint('fleet_id', name=op.f('pk_crest_fleets')) + + with op.batch_alter_table('eveapiscope') as batch: + addTo = batch + PrimaryKeyConstraint('scope_id', name=op.f('pk_eveapiscope')) + create_index(op.f('ix_eveapiscope_scope_name'), 'eveapiscope', ['scope_name'], unique=False) + + with op.batch_alter_table('event_history_entries') as batch: + addTo = batch + ForeignKeyConstraint(['type_id'], ['event_history_types.type_id'], + name=op.f('fk_event_history_entries_type_id_event_history_types')) + PrimaryKeyConstraint('history_id', name=op.f('pk_event_history_entries')) + create_index(op.f('ix_event_history_entries_time'), 'event_history_entries', ['time'], unique=False) + + with op.batch_alter_table('event_history_info') as batch: + addTo = batch + ForeignKeyConstraint(['history_id'], ['event_history_entries.history_id'], + name=op.f('fk_event_history_info_history_id_event_history_entries')) + PrimaryKeyConstraint('info_id', name=op.f('pk_event_history_info')) + + with op.batch_alter_table('event_history_types') as batch: + addTo = batch + PrimaryKeyConstraint('type_id', name=op.f('pk_event_history_types')) + UniqueConstraint('type_name', name=op.f('uq_event_history_types_type_name')) + + with op.batch_alter_table('fcs') as batch: + addTo = batch + ForeignKeyConstraint(['account_id'], ['accounts.id'], name=op.f('fk_fcs_account_id_accounts'), + ondelete='CASCADE') + ForeignKeyConstraint(['group_id'], ['waitlist_groups.group_id'], + name=op.f('fk_fcs_group_id_waitlist_groups'), ondelete='CASCADE') + + with op.batch_alter_table('feedback') as batch: + addTo = batch + ForeignKeyConstraint(['user'], ['characters.id'], name=op.f('fk_feedback_user_characters')) + PrimaryKeyConstraint('id', name=op.f('pk_feedback')) + create_index(op.f('ix_feedback_last_changed'), 'feedback', ['last_changed'], unique=False) + create_index(op.f('ix_feedback_user'), 'feedback', ['user'], unique=True) + + with op.batch_alter_table('fit_module') as batch: + addTo = batch + ForeignKeyConstraint(['fit_id'], ['fittings.id'], name=op.f('fk_fit_module_fit_id_fittings')) + ForeignKeyConstraint(['module_id'], ['invtypes.type_id'], name=op.f('fk_fit_module_module_id_invtypes')) + PrimaryKeyConstraint('fit_id', 'module_id', name=op.f('pk_fit_module')) + + with op.batch_alter_table('fittings') as batch: + addTo = batch + ForeignKeyConstraint(['ship_type'], ['invtypes.type_id'], name=op.f('fk_fittings_ship_type_invtypes')) + PrimaryKeyConstraint('id', name=op.f('pk_fittings')) + + with op.batch_alter_table('fleetmanager') as batch: + addTo = batch + ForeignKeyConstraint(['account_id'], ['accounts.id'], name=op.f('fk_fleetmanager_account_id_accounts'), + ondelete='CASCADE') + ForeignKeyConstraint(['group_id'], ['waitlist_groups.group_id'], + name=op.f('fk_fleetmanager_group_id_waitlist_groups'), ondelete='CASCADE') + + with op.batch_alter_table('incursion_layout') as batch: + addTo = batch + ForeignKeyConstraint(['constellation'], ['constellation.constellation_id'], + name=op.f('fk_incursion_layout_constellation_constellation')) + ForeignKeyConstraint(['dockup'], ['station.station_id'], + name=op.f('fk_incursion_layout_dockup_station')) + ForeignKeyConstraint(['headquarter'], ['solarsystem.solar_system_id'], + name=op.f('fk_incursion_layout_headquarter_solarsystem')) + ForeignKeyConstraint(['staging'], ['solarsystem.solar_system_id'], + name=op.f('fk_incursion_layout_staging_solarsystem')) + PrimaryKeyConstraint('constellation', name=op.f('pk_incursion_layout')) + + with op.batch_alter_table('invmarketgroups') as batch: + addTo = batch + ForeignKeyConstraint(['parent_group_id'], ['invmarketgroups.market_group_id'], + name=op.f('fk_invmarketgroups_parent_group_id_invmarketgroups')) + PrimaryKeyConstraint('market_group_id', name=op.f('pk_invmarketgroups')) + + with op.batch_alter_table('invtypes') as batch: + addTo = batch + PrimaryKeyConstraint('type_id', name=op.f('pk_invtypes')) + create_index(op.f('ix_invtypes_group_id'), 'invtypes', ['group_id'], unique=False) + + with op.batch_alter_table('linked_chars') as batch: + addTo = batch + ForeignKeyConstraint(['char_id'], ['characters.id'], name=op.f('fk_linked_chars_char_id_characters'), + onupdate='CASCADE', ondelete='CASCADE') + ForeignKeyConstraint(['id'], ['accounts.id'], name=op.f('fk_linked_chars_id_accounts'), + onupdate='CASCADE', ondelete='CASCADE') + + with op.batch_alter_table('permission_roles') as batch: + addTo = batch + ForeignKeyConstraint(['permission'], ['permissions.id'], + name=op.f('fk_permission_roles_permission_permissions')) + ForeignKeyConstraint(['role'], ['roles.id'], name=op.f('fk_permission_roles_role_roles')) + + with op.batch_alter_table('permissions') as batch: + addTo = batch + PrimaryKeyConstraint('id', name=op.f('pk_permissions')) + UniqueConstraint('name', name=op.f('uq_permissions_name')) + + with op.batch_alter_table('role_changes') as batch: + addTo = batch + ForeignKeyConstraint(['entry_id'], ['account_notes.entry_id'], + name=op.f('fk_role_changes_entry_id_account_notes'), onupdate='CASCADE', + ondelete='CASCADE') + ForeignKeyConstraint(['role_id'], ['roles.id'], name=op.f('fk_role_changes_role_id_roles'), + onupdate='CASCADE', ondelete='CASCADE') + PrimaryKeyConstraint('role_change_id', name=op.f('pk_role_changes')) + + with op.batch_alter_table('roles') as batch: + addTo = batch + PrimaryKeyConstraint('id', name=op.f('pk_roles')) + UniqueConstraint('name', name=op.f('uq_roles_name')) + + with op.batch_alter_table('settings') as batch: + addTo = batch + PrimaryKeyConstraint('key', name=op.f('pk_settings')) + + with op.batch_alter_table('solarsystem') as batch: + addTo = batch + PrimaryKeyConstraint('solar_system_id', name=op.f('pk_solarsystem')) + create_index(op.f('ix_solarsystem_solar_system_name'), 'solarsystem', ['solar_system_name'], unique=True) + + with op.batch_alter_table('ssotoken') as batch: + addTo = batch + ForeignKeyConstraint(['account_id'], ['accounts.id'], name=op.f('fk_ssotoken_account_id_accounts'), + onupdate='CASCADE', ondelete='CASCADE') + PrimaryKeyConstraint('account_id', name=op.f('pk_ssotoken')) + + with op.batch_alter_table('station') as batch: + addTo = batch + PrimaryKeyConstraint('station_id', name=op.f('pk_station')) + create_index(op.f('ix_station_station_name'), 'station', ['station_name'], unique=True) + + with op.batch_alter_table('tickets') as batch: + addTo = batch + ForeignKeyConstraint(['character_id'], ['characters.id'], + name=op.f('fk_tickets_character_id_characters')) + PrimaryKeyConstraint('id', name=op.f('pk_tickets')) + create_index(op.f('ix_tickets_character_id'), 'tickets', ['character_id'], unique=False) + create_index(op.f('ix_tickets_state'), 'tickets', ['state'], unique=False) + create_index(op.f('ix_tickets_time'), 'tickets', ['time'], unique=False) + + with op.batch_alter_table('tokenscope') as batch: + addTo = batch + ForeignKeyConstraint(['scope_id'], ['eveapiscope.scope_id'], + name=op.f('fk_tokenscope_scope_id_eveapiscope'), onupdate='CASCADE', + ondelete='CASCADE') + ForeignKeyConstraint(['token_id'], ['ssotoken.account_id'], name=op.f('fk_tokenscope_token_id_ssotoken'), + onupdate='CASCADE', ondelete='CASCADE') + PrimaryKeyConstraint('token_id', 'scope_id', name=op.f('pk_tokenscope')) + + with op.batch_alter_table('trivia') as batch: + addTo = batch + # mysql (as of now) and mariadb < 10.2.1 ignores these + if not doFk: + batch.create_check_constraint(op.f('ck_trivia_to_bigger_from'), 'to_time > from_time') + ForeignKeyConstraint(['created_by_id'], ['accounts.id'], name=op.f('fk_trivia_created_by_id_accounts')) + PrimaryKeyConstraint('trivia_id', name=op.f('pk_trivia')) + + with op.batch_alter_table('trivia_answer') as batch: + addTo = batch + ForeignKeyConstraint(['question_id'], ['trivia_question.question_id'], + name=op.f('fk_trivia_answer_question_id_trivia_question')) + PrimaryKeyConstraint('answer_id', 'question_id', name=op.f('pk_trivia_answer')) + + with op.batch_alter_table('trivia_question') as batch: + addTo = batch + ForeignKeyConstraint(['trivia_id'], ['trivia.trivia_id'], + name=op.f('fk_trivia_question_trivia_id_trivia')) + PrimaryKeyConstraint('question_id', name=op.f('pk_trivia_question')) + if not doFk: + batch.create_check_constraint('answer_connection', + "answer_connection IN ('AND', 'OR', 'NOT', 'NONE')") + + with op.batch_alter_table('trivia_submission') as batch: + addTo = batch + ForeignKeyConstraint(['submittor_account_id'], ['accounts.id'], + name=op.f('fk_trivia_submission_submittor_account_id_accounts')) + ForeignKeyConstraint(['submittor_id'], ['characters.id'], + name=op.f('fk_trivia_submission_submittor_id_characters')) + ForeignKeyConstraint(['trivia_id'], ['trivia.trivia_id'], + name=op.f('fk_trivia_submission_trivia_id_trivia')) + PrimaryKeyConstraint('submission_id', name=op.f('pk_trivia_submission')) + + with op.batch_alter_table('trivia_submission_answer') as batch: + addTo = batch + ForeignKeyConstraint(['question_id'], ['trivia_question.question_id'], + name=op.f('fk_trivia_submission_answer_question_id_trivia_question')) + ForeignKeyConstraint(['submission_id'], ['trivia_submission.submission_id'], + name=op.f('fk_trivia_submission_answer_submission_id_trivia_submission')) + PrimaryKeyConstraint('submission_id', 'question_id', name=op.f('pk_trivia_submission_answer')) + + with op.batch_alter_table('ts_dati') as batch: + addTo = batch + PrimaryKeyConstraint('teamspeak_id', name=op.f('pk_ts_dati')) + + with op.batch_alter_table('waitlist_entries') as batch: + addTo = batch + ForeignKeyConstraint(['user'], ['characters.id'], name=op.f('fk_waitlist_entries_user_characters')) + ForeignKeyConstraint(['waitlist_id'], ['waitlists.id'], + name=op.f('fk_waitlist_entries_waitlist_id_waitlists'), onupdate='CASCADE', + ondelete='CASCADE') + PrimaryKeyConstraint('id', name=op.f('pk_waitlist_entries')) + + with op.batch_alter_table('waitlist_entry_fits') as batch: + addTo = batch + ForeignKeyConstraint(['entry_id'], ['waitlist_entries.id'], + name=op.f('fk_waitlist_entry_fits_entry_id_waitlist_entries'), onupdate='CASCADE', + ondelete='CASCADE') + ForeignKeyConstraint(['fit_id'], ['fittings.id'], name=op.f('fk_waitlist_entry_fits_fit_id_fittings'), + onupdate='CASCADE', ondelete='CASCADE') + PrimaryKeyConstraint('fit_id', name=op.f('pk_waitlist_entry_fits')) + + with op.batch_alter_table('waitlist_groups') as batch: + addTo = batch + ForeignKeyConstraint(['constellation_id'], ['constellation.constellation_id'], + name=op.f('fk_waitlist_groups_constellation_id_constellation')) + ForeignKeyConstraint(['dockup_id'], ['station.station_id'], + name=op.f('fk_waitlist_groups_dockup_id_station')) + # don't do these they will get removed + """ + ForeignKeyConstraint(['dpswl_id'], ['waitlists.id'], + name=op.f('fk_waitlist_groups_dpswl_id_waitlists')) + ForeignKeyConstraint(['logiwl_id'], ['waitlists.id'], + name=op.f('fk_waitlist_groups_logiwl_id_waitlists')) + ForeignKeyConstraint(['otherwl_id'], ['waitlists.id'], + name=op.f('fk_waitlist_groups_otherwl_id_waitlists')) + ForeignKeyConstraint(['sniperwl_id'], ['waitlists.id'], + name=op.f('fk_waitlist_groups_sniperwl_id_waitlists')) + ForeignKeyConstraint(['xupwl_id'], ['waitlists.id'], + name=op.f('fk_waitlist_groups_xupwl_id_waitlists')) + """ + ForeignKeyConstraint(['system_id'], ['solarsystem.solar_system_id'], + name=op.f('fk_waitlist_groups_system_id_solarsystem')) + PrimaryKeyConstraint('group_id', name=op.f('pk_waitlist_groups')) + UniqueConstraint('display_name', name=op.f('uq_waitlist_groups_display_name')) + UniqueConstraint('group_name', name=op.f('uq_waitlist_groups_group_name')) + + with op.batch_alter_table('waitlists') as batch: + addTo = batch + ForeignKeyConstraint(['group_id'], ['waitlist_groups.group_id'], + name=op.f('fk_waitlists_group_id_waitlist_groups')) + PrimaryKeyConstraint('id', name=op.f('pk_waitlists')) + + with op.batch_alter_table('whitelist') as batch: + addTo = batch + ForeignKeyConstraint(['admin_id'], ['characters.id'], name=op.f('fk_whitelist_admin_id_characters')) + ForeignKeyConstraint(['character_id'], ['characters.id'], + name=op.f('fk_whitelist_character_id_characters')) + PrimaryKeyConstraint('character_id', name=op.f('pk_whitelist')) + + +# helper stuff to convert to snake_case +rex1 = re.compile(r'(.)([A-Z][a-z]+)') +rex2 = re.compile('([a-z0-9])([A-Z])') + + +def convert_case(s): + changed = rex1.sub(r'\1_\2', s) + changed = rex2.sub(r'\1_\2', changed).lower() + return changed.replace('__', '_') + + +if __name__ == "__main__": + start = datetime.datetime.utcnow() + print('Running migration...', start) + upgrade() + end = datetime.datetime.utcnow() + print("Running migration Done", "Took", start-end) diff --git a/migrations/script.py.mako b/migrations/script.py.mako index 95702017..2c015630 100644 --- a/migrations/script.py.mako +++ b/migrations/script.py.mako @@ -1,18 +1,20 @@ """${message} Revision ID: ${up_revision} -Revises: ${down_revision} +Revises: ${down_revision | comma,n} Create Date: ${create_date} """ +from alembic import op +import sqlalchemy as sa +${imports if imports else ""} # revision identifiers, used by Alembic. revision = ${repr(up_revision)} down_revision = ${repr(down_revision)} +branch_labels = ${repr(branch_labels)} +depends_on = ${repr(depends_on)} -from alembic import op -import sqlalchemy as sa -${imports if imports else ""} def upgrade(): ${upgrades if upgrades else "pass"} diff --git a/migrations/versions/052e5edbdf5d_.py b/migrations/versions/052e5edbdf5d_.py deleted file mode 100644 index 4ddc9572..00000000 --- a/migrations/versions/052e5edbdf5d_.py +++ /dev/null @@ -1,30 +0,0 @@ -"""empty message - -Revision ID: 052e5edbdf5d -Revises: 9ad747adbff1 -Create Date: 2017-01-26 16:42:43.829000 - -""" - -# revision identifiers, used by Alembic. -revision = '052e5edbdf5d' -down_revision = '9ad747adbff1' - -from alembic import op -import sqlalchemy as sa - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_index('ix_eveapiscope_scopeName', table_name='eveapiscope') - op.add_column('accounts', sa.Column('had_welcome_mail', sa.Boolean(), server_default=sa.text(u'false'), nullable=True)) - op.create_index(op.f('ix_eveapiscope_scopeName'), 'eveapiscope', ['scopeName'], unique=False) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ## - op.drop_index(op.f('ix_eveapiscope_scopeName'), table_name='eveapiscope') - op.create_index('ix_eveapiscope_scopeName', 'eveapiscope', ['scopeName'], unique=False) - op.drop_column('accounts', 'had_welcome_mail') - - ### end Alembic commands ### diff --git a/migrations/versions/09414b495bb5_.py b/migrations/versions/09414b495bb5_.py deleted file mode 100644 index 8015b969..00000000 --- a/migrations/versions/09414b495bb5_.py +++ /dev/null @@ -1,27 +0,0 @@ -"""empty message - -Revision ID: 09414b495bb5 -Revises: 8f6e88746b77 -Create Date: 2017-01-24 22:10:55.779000 - -""" - -# revision identifiers, used by Alembic. -revision = '09414b495bb5' -down_revision = '8f6e88746b77' - -from alembic import op -import sqlalchemy as sa - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.rename_table('role_history', 'account_notes') - op.add_column('account_notes', sa.Column('restriction_level', sa.SmallInteger(), server_default=sa.text(u'50'), nullable=False)) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_column('account_notes', 'restriction_level') - op.rename_table('account_notes', 'role_history') - ### end Alembic commands ### diff --git a/migrations/versions/0c6c4b5461ce_.py b/migrations/versions/0c6c4b5461ce_.py deleted file mode 100644 index ecdd2436..00000000 --- a/migrations/versions/0c6c4b5461ce_.py +++ /dev/null @@ -1,54 +0,0 @@ -"""empty message - -Revision ID: 0c6c4b5461ce -Revises: 7b75d315ee36 -Create Date: 2016-05-05 21:16:48.349000 - -""" - -# revision identifiers, used by Alembic. -revision = '0c6c4b5461ce' -down_revision = '7b75d315ee36' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_table('crest_fleets', - sa.Column('fleetID', sa.BigInteger(), nullable=False), - sa.Column('logiWingID', sa.BigInteger(), nullable=True), - sa.Column('logiSquadID', sa.BigInteger(), nullable=True), - sa.Column('sniperWingID', sa.BigInteger(), nullable=True), - sa.Column('sniperSquadID', sa.BigInteger(), nullable=True), - sa.Column('dpsWingID', sa.BigInteger(), nullable=True), - sa.Column('dpsSquadID', sa.BigInteger(), nullable=True), - sa.Column('otherWingID', sa.BigInteger(), nullable=True), - sa.Column('otherSquadID', sa.BigInteger(), nullable=True), - sa.Column('groupID', sa.Integer(), nullable=False), - sa.Column('compID', sa.Integer(), nullable=False), - sa.ForeignKeyConstraint(['compID'], ['accounts.id'], ), - sa.ForeignKeyConstraint(['groupID'], ['waitlist_groups.groupID'], ), - sa.PrimaryKeyConstraint('fleetID') - ) - op.create_table('send_invite', - sa.Column('sendInviteID', sa.Integer(), nullable=False), - sa.Column('characterID', sa.Integer(), nullable=True), - sa.Column('fleetID', sa.BigInteger(), nullable=True), - sa.Column('inviteCount', sa.Integer(), nullable=True), - sa.Column('sendAt', sa.DateTime(), nullable=True), - sa.ForeignKeyConstraint(['characterID'], ['characters.id'], ), - sa.ForeignKeyConstraint(['fleetID'], ['crest_fleets.fleetID'], ), - sa.PrimaryKeyConstraint('sendInviteID') - ) - op.add_column(u'waitlist_entries', sa.Column('timeInvited', sa.DateTime(), nullable=True)) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_column(u'waitlist_entries', 'timeInvited') - op.drop_table('send_invite') - op.drop_table('crest_fleets') - ### end Alembic commands ### diff --git a/migrations/versions/11ee20a79069_.py b/migrations/versions/11ee20a79069_.py deleted file mode 100644 index fc17365d..00000000 --- a/migrations/versions/11ee20a79069_.py +++ /dev/null @@ -1,28 +0,0 @@ -"""empty message - -Revision ID: 11ee20a79069 -Revises: 4f84a51ec263 -Create Date: 2016-04-07 22:43:19.593000 - -""" - -# revision identifiers, used by Alembic. -revision = '11ee20a79069' -down_revision = '4f84a51ec263' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint(u'fittings_ibfk_2', 'fittings', type_='foreignkey') - op.create_foreign_key('fittings_ibfk_2', 'fittings', 'waitlist_entries', ['waitlist_id'], ['id'], onupdate='CASCADE') - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint('fittings_ibfk_2', 'fittings', type_='foreignkey') - op.create_foreign_key(u'fittings_ibfk_2', 'fittings', 'waitlist_entries', ['waitlist_id'], ['id'], onupdate=u'CASCADE', ondelete=u'CASCADE') - ### end Alembic commands ### diff --git a/migrations/versions/1877262ba3de_.py b/migrations/versions/1877262ba3de_.py deleted file mode 100644 index a281dffa..00000000 --- a/migrations/versions/1877262ba3de_.py +++ /dev/null @@ -1,26 +0,0 @@ -"""empty message - -Revision ID: 1877262ba3de -Revises: 839456a7e73e -Create Date: 2016-03-07 12:06:57.784000 - -""" - -# revision identifiers, used by Alembic. -revision = '1877262ba3de' -down_revision = '839456a7e73e' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.add_column('fittings', sa.Column('wl_type', sa.String(length=10), nullable=True)) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_column('fittings', 'wl_type') - ### end Alembic commands ### diff --git a/migrations/versions/23a7fc516054_.py b/migrations/versions/23a7fc516054_.py deleted file mode 100644 index 92a6e011..00000000 --- a/migrations/versions/23a7fc516054_.py +++ /dev/null @@ -1,28 +0,0 @@ -"""empty message - -Revision ID: 23a7fc516054 -Revises: 687970b3617d -Create Date: 2017-02-11 16:25:07.952780 - -""" - -# revision identifiers, used by Alembic. -revision = '23a7fc516054' -down_revision = '687970b3617d' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint('calendar_event_ibfk_2', 'calendar_event', type_='foreignkey') - op.create_foreign_key(None, 'calendar_event', 'calendar_category', ['eventCategoryID'], ['categoryID'], onupdate='CASCADE', ondelete='CASCADE') - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint(None, 'calendar_event', type_='foreignkey') - op.create_foreign_key('calendar_event_ibfk_2', 'calendar_event', 'calendar_category', ['eventCategoryID'], ['categoryID'], onupdate='CASCADE') - # ### end Alembic commands ### diff --git a/migrations/versions/23de9b7d3697_.py b/migrations/versions/23de9b7d3697_.py new file mode 100644 index 00000000..c40f58c0 --- /dev/null +++ b/migrations/versions/23de9b7d3697_.py @@ -0,0 +1,611 @@ +"""empty message + +Revision ID: 23de9b7d3697 +Revises: +Create Date: 2018-03-02 14:05:04.480724 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '23de9b7d3697' +down_revision = None +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('apicache_allianceinfo', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('alliance_name', sa.String(length=100), nullable=True), + sa.Column('date_founded', sa.DateTime(), nullable=True), + sa.Column('executor_corp_id', sa.Integer(), nullable=True), + sa.Column('ticker', sa.String(length=10), nullable=True), + sa.Column('expire', sa.DateTime(), nullable=True), + sa.PrimaryKeyConstraint('id', name=op.f('pk_apicache_allianceinfo')) + ) + op.create_index(op.f('ix_apicache_allianceinfo_alliance_name'), 'apicache_allianceinfo', ['alliance_name'], unique=False) + op.create_index(op.f('ix_apicache_allianceinfo_executor_corp_id'), 'apicache_allianceinfo', ['executor_corp_id'], unique=False) + op.create_table('apicache_characteraffiliation', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=100), nullable=True), + sa.Column('corporation_id', sa.Integer(), nullable=True), + sa.Column('corporation_name', sa.String(length=100), nullable=True), + sa.Column('alliance_id', sa.Integer(), nullable=True), + sa.Column('alliance_name', sa.String(length=100), nullable=True), + sa.Column('expire', sa.DateTime(), nullable=True), + sa.PrimaryKeyConstraint('id', name=op.f('pk_apicache_characteraffiliation')) + ) + op.create_index(op.f('ix_apicache_characteraffiliation_alliance_id'), 'apicache_characteraffiliation', ['alliance_id'], unique=False) + op.create_index(op.f('ix_apicache_characteraffiliation_alliance_name'), 'apicache_characteraffiliation', ['alliance_name'], unique=False) + op.create_index(op.f('ix_apicache_characteraffiliation_corporation_id'), 'apicache_characteraffiliation', ['corporation_id'], unique=False) + op.create_index(op.f('ix_apicache_characteraffiliation_corporation_name'), 'apicache_characteraffiliation', ['corporation_name'], unique=False) + op.create_index(op.f('ix_apicache_characteraffiliation_name'), 'apicache_characteraffiliation', ['name'], unique=False) + op.create_table('apicache_characterinfo', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('character_name', sa.String(length=100), nullable=True), + sa.Column('corporation_id', sa.Integer(), nullable=True), + sa.Column('character_birthday', sa.DateTime(), nullable=False), + sa.Column('race_id', sa.Integer(), nullable=True), + sa.Column('expire', sa.DateTime(), nullable=True), + sa.PrimaryKeyConstraint('id', name=op.f('pk_apicache_characterinfo')) + ) + op.create_index(op.f('ix_apicache_characterinfo_corporation_id'), 'apicache_characterinfo', ['corporation_id'], unique=False) + op.create_table('apicache_corporationinfo', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=100), nullable=True), + sa.Column('alliance_id', sa.Integer(), nullable=True), + sa.Column('ceo_id', sa.Integer(), nullable=True), + sa.Column('description', sa.Text(), nullable=True), + sa.Column('creator_id', sa.Integer(), nullable=True), + sa.Column('member_count', sa.Integer(), nullable=True), + sa.Column('tax_rate', sa.Float(), nullable=True), + sa.Column('ticker', sa.String(length=10), nullable=True), + sa.Column('url', sa.String(length=500), nullable=True), + sa.Column('creation_date', sa.DateTime(), nullable=True), + sa.Column('expire', sa.DateTime(), nullable=True), + sa.PrimaryKeyConstraint('id', name=op.f('pk_apicache_corporationinfo')) + ) + op.create_index(op.f('ix_apicache_corporationinfo_alliance_id'), 'apicache_corporationinfo', ['alliance_id'], unique=False) + op.create_index(op.f('ix_apicache_corporationinfo_name'), 'apicache_corporationinfo', ['name'], unique=False) + op.create_table('calendar_category', + sa.Column('category_id', sa.Integer(), nullable=False), + sa.Column('category_name', sa.String(length=50), nullable=True), + sa.Column('fixed_title', sa.String(length=200), nullable=True), + sa.Column('fixed_description', sa.Text(), nullable=True), + sa.PrimaryKeyConstraint('category_id', name=op.f('pk_calendar_category')) + ) + op.create_index(op.f('ix_calendar_category_category_name'), 'calendar_category', ['category_name'], unique=False) + op.create_table('characters', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('eve_name', sa.String(length=100), nullable=True), + sa.Column('new_bro', sa.Boolean(name='new_bro'), nullable=False), + sa.Column('lc_level', sa.SmallInteger(), nullable=False), + sa.Column('cbs_level', sa.SmallInteger(), nullable=False), + sa.Column('login_token', sa.String(length=16), nullable=True), + sa.Column('teamspeak_poke', sa.Boolean(name='teamspeak_poke'), server_default='1', nullable=False), + sa.PrimaryKeyConstraint('id', name=op.f('pk_characters')) + ) + op.create_table('constellation', + sa.Column('constellation_id', sa.Integer(), nullable=False), + sa.Column('constellation_name', sa.String(length=100), nullable=True), + sa.PrimaryKeyConstraint('constellation_id', name=op.f('pk_constellation')) + ) + op.create_index(op.f('ix_constellation_constellation_name'), 'constellation', ['constellation_name'], unique=True) + op.create_table('eveapiscope', + sa.Column('scope_id', sa.Integer(), nullable=False), + sa.Column('scope_name', sa.String(length=100), nullable=True), + sa.PrimaryKeyConstraint('scope_id', name=op.f('pk_eveapiscope')) + ) + op.create_index(op.f('ix_eveapiscope_scope_name'), 'eveapiscope', ['scope_name'], unique=False) + op.create_table('event_history_types', + sa.Column('type_id', sa.Integer(), nullable=False), + sa.Column('type_name', sa.String(length=20), nullable=True), + sa.PrimaryKeyConstraint('type_id', name=op.f('pk_event_history_types')), + sa.UniqueConstraint('type_name', name=op.f('uq_event_history_types_type_name')) + ) + op.create_table('invmarketgroups', + sa.Column('market_group_id', sa.Integer(), nullable=False), + sa.Column('parent_group_id', sa.Integer(), nullable=True), + sa.Column('market_group_name', sa.String(length=100), nullable=True), + sa.Column('description', sa.String(length=3000), nullable=True), + sa.Column('icon_id', sa.Integer(), nullable=True), + sa.Column('has_types', sa.Boolean(name='has_types'), nullable=True), + sa.ForeignKeyConstraint(['parent_group_id'], ['invmarketgroups.market_group_id'], name=op.f('fk_invmarketgroups_parent_group_id_invmarketgroups')), + sa.PrimaryKeyConstraint('market_group_id', name=op.f('pk_invmarketgroups')) + ) + op.create_table('invtypes', + sa.Column('type_id', sa.Integer(), nullable=False), + sa.Column('group_id', sa.Integer(), nullable=True), + sa.Column('type_name', sa.String(length=100), nullable=True), + sa.Column('description', sa.Text(), nullable=True), + sa.Column('market_group_id', sa.BIGINT(), nullable=True), + sa.PrimaryKeyConstraint('type_id', name=op.f('pk_invtypes')) + ) + op.create_index(op.f('ix_invtypes_group_id'), 'invtypes', ['group_id'], unique=False) + op.create_table('permissions', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=150), nullable=True), + sa.PrimaryKeyConstraint('id', name=op.f('pk_permissions')), + sa.UniqueConstraint('name', name=op.f('uq_permissions_name')) + ) + op.create_table('roles', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=50), nullable=True), + sa.Column('display_name', sa.String(length=150), nullable=True), + sa.PrimaryKeyConstraint('id', name=op.f('pk_roles')), + sa.UniqueConstraint('name', name=op.f('uq_roles_name')) + ) + op.create_table('settings', + sa.Column('key', sa.String(length=20), nullable=False), + sa.Column('value', sa.Text(), nullable=True), + sa.PrimaryKeyConstraint('key', name=op.f('pk_settings')) + ) + op.create_table('solarsystem', + sa.Column('solar_system_id', sa.Integer(), nullable=False), + sa.Column('solar_system_name', sa.String(length=100), nullable=True), + sa.PrimaryKeyConstraint('solar_system_id', name=op.f('pk_solarsystem')) + ) + op.create_index(op.f('ix_solarsystem_solar_system_name'), 'solarsystem', ['solar_system_name'], unique=True) + op.create_table('station', + sa.Column('station_id', sa.Integer(), nullable=False), + sa.Column('station_name', sa.String(length=100), nullable=True), + sa.PrimaryKeyConstraint('station_id', name=op.f('pk_station')) + ) + op.create_index(op.f('ix_station_station_name'), 'station', ['station_name'], unique=True) + op.create_table('ts_dati', + sa.Column('teamspeak_id', sa.Integer(), nullable=False), + sa.Column('display_name', sa.String(length=128), nullable=True), + sa.Column('host', sa.String(length=128), nullable=True), + sa.Column('port', sa.Integer(), nullable=True), + sa.Column('display_host', sa.String(length=128), nullable=True), + sa.Column('display_port', sa.Integer(), nullable=True), + sa.Column('query_name', sa.String(length=128), nullable=True), + sa.Column('query_password', sa.String(length=128), nullable=True), + sa.Column('server_id', sa.Integer(), nullable=True), + sa.Column('channel_id', sa.Integer(), nullable=True), + sa.Column('client_name', sa.String(length=20), nullable=True), + sa.Column('safety_channel_id', sa.Integer(), nullable=True), + sa.PrimaryKeyConstraint('teamspeak_id', name=op.f('pk_ts_dati')) + ) + op.create_table('accounts', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('current_char', sa.Integer(), nullable=True), + sa.Column('username', sa.String(length=100), nullable=True), + sa.Column('login_token', sa.String(length=16), nullable=True), + sa.Column('disabled', sa.Boolean(name='disabled'), server_default=sa.text('false'), nullable=True), + sa.Column('had_welcome_mail', sa.Boolean(name='had_welcome_mail'), server_default=sa.text('false'), nullable=True), + sa.ForeignKeyConstraint(['current_char'], ['characters.id'], name=op.f('fk_accounts_current_char_characters')), + sa.PrimaryKeyConstraint('id', name=op.f('pk_accounts')), + sa.UniqueConstraint('login_token', name=op.f('uq_accounts_login_token')), + sa.UniqueConstraint('username', name=op.f('uq_accounts_username')) + ) + op.create_table('ban', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=100), nullable=True), + sa.Column('reason', sa.Text(), nullable=True), + sa.Column('admin', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['admin'], ['characters.id'], name=op.f('fk_ban_admin_characters')), + sa.PrimaryKeyConstraint('id', name=op.f('pk_ban')) + ) + op.create_index(op.f('ix_ban_name'), 'ban', ['name'], unique=False) + op.create_table('event_history_entries', + sa.Column('history_id', sa.Integer(), nullable=False), + sa.Column('time', sa.DateTime(), nullable=True), + sa.Column('type_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['type_id'], ['event_history_types.type_id'], name=op.f('fk_event_history_entries_type_id_event_history_types')), + sa.PrimaryKeyConstraint('history_id', name=op.f('pk_event_history_entries')) + ) + op.create_index(op.f('ix_event_history_entries_time'), 'event_history_entries', ['time'], unique=False) + op.create_table('feedback', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('last_changed', sa.DateTime(), nullable=True), + sa.Column('user', sa.Integer(), nullable=True), + sa.Column('likes', sa.Boolean(name='likes'), nullable=True), + sa.Column('comment', sa.Text(), nullable=True), + sa.ForeignKeyConstraint(['user'], ['characters.id'], name=op.f('fk_feedback_user_characters')), + sa.PrimaryKeyConstraint('id', name=op.f('pk_feedback')) + ) + op.create_index(op.f('ix_feedback_last_changed'), 'feedback', ['last_changed'], unique=False) + op.create_index(op.f('ix_feedback_user'), 'feedback', ['user'], unique=True) + op.create_table('fittings', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('ship_type', sa.Integer(), nullable=True), + sa.Column('modules', sa.String(length=5000), nullable=True), + sa.Column('comment', sa.String(length=5000), nullable=True), + sa.Column('wl_type', sa.String(length=10), nullable=True), + sa.Column('created', sa.DateTime(), nullable=True), + sa.ForeignKeyConstraint(['ship_type'], ['invtypes.type_id'], name=op.f('fk_fittings_ship_type_invtypes')), + sa.PrimaryKeyConstraint('id', name=op.f('pk_fittings')) + ) + op.create_table('incursion_layout', + sa.Column('constellation', sa.Integer(), nullable=False), + sa.Column('staging', sa.Integer(), nullable=True), + sa.Column('headquarter', sa.Integer(), nullable=True), + sa.Column('dockup', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['constellation'], ['constellation.constellation_id'], name=op.f('fk_incursion_layout_constellation_constellation')), + sa.ForeignKeyConstraint(['dockup'], ['station.station_id'], name=op.f('fk_incursion_layout_dockup_station')), + sa.ForeignKeyConstraint(['headquarter'], ['solarsystem.solar_system_id'], name=op.f('fk_incursion_layout_headquarter_solarsystem')), + sa.ForeignKeyConstraint(['staging'], ['solarsystem.solar_system_id'], name=op.f('fk_incursion_layout_staging_solarsystem')), + sa.PrimaryKeyConstraint('constellation', name=op.f('pk_incursion_layout')) + ) + op.create_table('permission_roles', + sa.Column('permission', sa.Integer(), nullable=True), + sa.Column('role', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['permission'], ['permissions.id'], name=op.f('fk_permission_roles_permission_permissions')), + sa.ForeignKeyConstraint(['role'], ['roles.id'], name=op.f('fk_permission_roles_role_roles')) + ) + op.create_table('tickets', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('title', sa.String(length=50), nullable=True), + sa.Column('time', sa.DateTime(), nullable=False), + sa.Column('character_id', sa.Integer(), nullable=True), + sa.Column('message', sa.Text(), nullable=True), + sa.Column('state', sa.String(length=20), nullable=False), + sa.ForeignKeyConstraint(['character_id'], ['characters.id'], name=op.f('fk_tickets_character_id_characters')), + sa.PrimaryKeyConstraint('id', name=op.f('pk_tickets')) + ) + op.create_index(op.f('ix_tickets_character_id'), 'tickets', ['character_id'], unique=False) + op.create_index(op.f('ix_tickets_state'), 'tickets', ['state'], unique=False) + op.create_index(op.f('ix_tickets_time'), 'tickets', ['time'], unique=False) + op.create_table('waitlist_groups', + sa.Column('group_id', sa.Integer(), nullable=False), + sa.Column('group_name', sa.String(length=50), nullable=False), + sa.Column('display_name', sa.String(length=50), nullable=False), + sa.Column('enabled', sa.Boolean(name='enabled'), nullable=False), + sa.Column('status', sa.String(length=1000), nullable=True), + sa.Column('dockup_id', sa.Integer(), nullable=True), + sa.Column('system_id', sa.Integer(), nullable=True), + sa.Column('constellation_id', sa.Integer(), nullable=True), + sa.Column('ordering', sa.Integer(), nullable=False), + sa.Column('influence', sa.Boolean(name='influence'), server_default='0', nullable=False), + sa.ForeignKeyConstraint(['constellation_id'], ['constellation.constellation_id'], name=op.f('fk_waitlist_groups_constellation_id_constellation')), + sa.ForeignKeyConstraint(['dockup_id'], ['station.station_id'], name=op.f('fk_waitlist_groups_dockup_id_station')), + sa.ForeignKeyConstraint(['system_id'], ['solarsystem.solar_system_id'], name=op.f('fk_waitlist_groups_system_id_solarsystem')), + sa.PrimaryKeyConstraint('group_id', name=op.f('pk_waitlist_groups')), + sa.UniqueConstraint('display_name', name=op.f('uq_waitlist_groups_display_name')), + sa.UniqueConstraint('group_name', name=op.f('uq_waitlist_groups_group_name')) + ) + op.create_table('whitelist', + sa.Column('character_id', sa.Integer(), nullable=False), + sa.Column('reason', sa.Text(), nullable=True), + sa.Column('admin_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['admin_id'], ['characters.id'], name=op.f('fk_whitelist_admin_id_characters')), + sa.ForeignKeyConstraint(['character_id'], ['characters.id'], name=op.f('fk_whitelist_character_id_characters')), + sa.PrimaryKeyConstraint('character_id', name=op.f('pk_whitelist')) + ) + op.create_table('account_notes', + sa.Column('entry_id', sa.Integer(), nullable=False), + sa.Column('account_id', sa.Integer(), nullable=False), + sa.Column('by_account_id', sa.Integer(), nullable=False), + sa.Column('note', sa.Text(), nullable=True), + sa.Column('time', sa.DateTime(), nullable=True), + sa.Column('restriction_level', sa.SmallInteger(), server_default=sa.text('50'), nullable=False), + sa.ForeignKeyConstraint(['account_id'], ['accounts.id'], name=op.f('fk_account_notes_account_id_accounts')), + sa.ForeignKeyConstraint(['by_account_id'], ['accounts.id'], name=op.f('fk_account_notes_by_account_id_accounts')), + sa.PrimaryKeyConstraint('entry_id', name=op.f('pk_account_notes')) + ) + op.create_index(op.f('ix_account_notes_time'), 'account_notes', ['time'], unique=False) + op.create_table('account_roles', + sa.Column('account_id', sa.Integer(), nullable=True), + sa.Column('role_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['account_id'], ['accounts.id'], name=op.f('fk_account_roles_account_id_accounts'), onupdate='CASCADE', ondelete='CASCADE'), + sa.ForeignKeyConstraint(['role_id'], ['roles.id'], name=op.f('fk_account_roles_role_id_roles'), onupdate='CASCADE', ondelete='CASCADE') + ) + op.create_table('backseats', + sa.Column('account_id', sa.Integer(), nullable=True), + sa.Column('group_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['account_id'], ['accounts.id'], name=op.f('fk_backseats_account_id_accounts'), ondelete='CASCADE'), + sa.ForeignKeyConstraint(['group_id'], ['waitlist_groups.group_id'], name=op.f('fk_backseats_group_id_waitlist_groups'), ondelete='CASCADE') + ) + op.create_table('calendar_event', + sa.Column('event_id', sa.Integer(), nullable=False), + sa.Column('event_creator_id', sa.Integer(), nullable=True), + sa.Column('event_title', sa.Text(), nullable=True), + sa.Column('event_description', sa.Text(), nullable=True), + sa.Column('event_category_id', sa.Integer(), nullable=True), + sa.Column('event_approved', sa.Boolean(name='event_approved'), nullable=True), + sa.Column('event_time', sa.DateTime(), nullable=True), + sa.Column('approver_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['approver_id'], ['accounts.id'], name=op.f('fk_calendar_event_approver_id_accounts'), onupdate='CASCADE', ondelete='CASCADE'), + sa.ForeignKeyConstraint(['event_category_id'], ['calendar_category.category_id'], name=op.f('fk_calendar_event_event_category_id_calendar_category'), onupdate='CASCADE', ondelete='CASCADE'), + sa.ForeignKeyConstraint(['event_creator_id'], ['accounts.id'], name=op.f('fk_calendar_event_event_creator_id_accounts'), onupdate='CASCADE', ondelete='CASCADE'), + sa.PrimaryKeyConstraint('event_id', name=op.f('pk_calendar_event')) + ) + op.create_index(op.f('ix_calendar_event_event_approved'), 'calendar_event', ['event_approved'], unique=False) + op.create_index(op.f('ix_calendar_event_event_category_id'), 'calendar_event', ['event_category_id'], unique=False) + op.create_index(op.f('ix_calendar_event_event_creator_id'), 'calendar_event', ['event_creator_id'], unique=False) + op.create_index(op.f('ix_calendar_event_event_time'), 'calendar_event', ['event_time'], unique=False) + op.create_table('ccvote', + sa.Column('ccvote_id', sa.Integer(), nullable=False), + sa.Column('voter_id', sa.Integer(), nullable=True), + sa.Column('lmvote_id', sa.Integer(), nullable=True), + sa.Column('fcvote_id', sa.Integer(), nullable=True), + sa.Column('time', sa.DateTime(), nullable=True), + sa.ForeignKeyConstraint(['fcvote_id'], ['accounts.id'], name=op.f('fk_ccvote_fcvote_id_accounts')), + sa.ForeignKeyConstraint(['lmvote_id'], ['accounts.id'], name=op.f('fk_ccvote_lmvote_id_accounts')), + sa.ForeignKeyConstraint(['voter_id'], ['characters.id'], name=op.f('fk_ccvote_voter_id_characters')), + sa.PrimaryKeyConstraint('ccvote_id', name=op.f('pk_ccvote')) + ) + op.create_table('comp_history', + sa.Column('history_id', sa.Integer(), nullable=False), + sa.Column('source_id', sa.Integer(), nullable=True), + sa.Column('target_id', sa.Integer(), nullable=False), + sa.Column('action', sa.String(length=20), nullable=True), + sa.Column('time', sa.DateTime(), nullable=True), + sa.Column('exref', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['source_id'], ['accounts.id'], name=op.f('fk_comp_history_source_id_accounts')), + sa.ForeignKeyConstraint(['target_id'], ['characters.id'], name=op.f('fk_comp_history_target_id_characters')), + sa.PrimaryKeyConstraint('history_id', name=op.f('pk_comp_history')) + ) + op.create_index(op.f('ix_comp_history_time'), 'comp_history', ['time'], unique=False) + op.create_table('crest_fleets', + sa.Column('fleet_id', sa.BigInteger(), nullable=False), + sa.Column('logi_wing_id', sa.BigInteger(), nullable=True), + sa.Column('logi_squad_id', sa.BigInteger(), nullable=True), + sa.Column('sniper_wing_id', sa.BigInteger(), nullable=True), + sa.Column('sniper_squad_id', sa.BigInteger(), nullable=True), + sa.Column('dps_wing_id', sa.BigInteger(), nullable=True), + sa.Column('dps_squad_id', sa.BigInteger(), nullable=True), + sa.Column('other_wing_id', sa.BigInteger(), nullable=True), + sa.Column('other_squad_id', sa.BigInteger(), nullable=True), + sa.Column('group_id', sa.Integer(), nullable=False), + sa.Column('comp_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['comp_id'], ['accounts.id'], name=op.f('fk_crest_fleets_comp_id_accounts')), + sa.ForeignKeyConstraint(['group_id'], ['waitlist_groups.group_id'], name=op.f('fk_crest_fleets_group_id_waitlist_groups')), + sa.PrimaryKeyConstraint('fleet_id', name=op.f('pk_crest_fleets')) + ) + op.create_table('event_history_info', + sa.Column('info_id', sa.Integer(), nullable=False), + sa.Column('history_id', sa.Integer(), nullable=True), + sa.Column('info_type', sa.Integer(), nullable=True), + sa.Column('reference_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['history_id'], ['event_history_entries.history_id'], name=op.f('fk_event_history_info_history_id_event_history_entries')), + sa.PrimaryKeyConstraint('info_id', name=op.f('pk_event_history_info')) + ) + op.create_table('fcs', + sa.Column('account_id', sa.Integer(), nullable=True), + sa.Column('group_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['account_id'], ['accounts.id'], name=op.f('fk_fcs_account_id_accounts'), ondelete='CASCADE'), + sa.ForeignKeyConstraint(['group_id'], ['waitlist_groups.group_id'], name=op.f('fk_fcs_group_id_waitlist_groups'), ondelete='CASCADE') + ) + op.create_table('fit_module', + sa.Column('fit_id', sa.Integer(), nullable=False), + sa.Column('module_id', sa.Integer(), nullable=False), + sa.Column('amount', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['fit_id'], ['fittings.id'], name=op.f('fk_fit_module_fit_id_fittings')), + sa.ForeignKeyConstraint(['module_id'], ['invtypes.type_id'], name=op.f('fk_fit_module_module_id_invtypes')), + sa.PrimaryKeyConstraint('fit_id', 'module_id', name=op.f('pk_fit_module')) + ) + op.create_table('fleetmanager', + sa.Column('account_id', sa.Integer(), nullable=True), + sa.Column('group_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['account_id'], ['accounts.id'], name=op.f('fk_fleetmanager_account_id_accounts'), ondelete='CASCADE'), + sa.ForeignKeyConstraint(['group_id'], ['waitlist_groups.group_id'], name=op.f('fk_fleetmanager_group_id_waitlist_groups'), ondelete='CASCADE') + ) + op.create_table('linked_chars', + sa.Column('id', sa.Integer(), nullable=True), + sa.Column('char_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['char_id'], ['characters.id'], name=op.f('fk_linked_chars_char_id_characters'), onupdate='CASCADE', ondelete='CASCADE'), + sa.ForeignKeyConstraint(['id'], ['accounts.id'], name=op.f('fk_linked_chars_id_accounts'), onupdate='CASCADE', ondelete='CASCADE') + ) + op.create_table('ssotoken', + sa.Column('account_id', sa.Integer(), nullable=False), + sa.Column('refresh_token', sa.String(length=128), nullable=True), + sa.Column('access_token', sa.String(length=128), nullable=True), + sa.Column('access_token_expires', sa.DateTime(), nullable=True), + sa.ForeignKeyConstraint(['account_id'], ['accounts.id'], name=op.f('fk_ssotoken_account_id_accounts'), onupdate='CASCADE', ondelete='CASCADE'), + sa.PrimaryKeyConstraint('account_id', name=op.f('pk_ssotoken')) + ) + op.create_table('trivia', + sa.Column('trivia_id', sa.Integer(), nullable=False), + sa.Column('created_by_id', sa.Integer(), nullable=True), + sa.Column('description', sa.String(length=5000), nullable=True), + sa.Column('alert_text', sa.String(length=1000), nullable=True), + sa.Column('from_time', sa.DateTime(), nullable=True), + sa.Column('to_time', sa.DateTime(), nullable=True), + sa.CheckConstraint('to_time > from_time', name=op.f('ck_trivia_to_bigger_from')), + sa.ForeignKeyConstraint(['created_by_id'], ['accounts.id'], name=op.f('fk_trivia_created_by_id_accounts')), + sa.PrimaryKeyConstraint('trivia_id', name=op.f('pk_trivia')) + ) + op.create_table('waitlists', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=50), nullable=True), + sa.Column('waitlist_type', sa.String(length=20), nullable=True), + sa.Column('group_id', sa.Integer(), nullable=True), + sa.Column('display_title', sa.String(length=100), nullable=False), + sa.ForeignKeyConstraint(['group_id'], ['waitlist_groups.group_id'], name=op.f('fk_waitlists_group_id_waitlist_groups')), + sa.PrimaryKeyConstraint('id', name=op.f('pk_waitlists')), + sa.UniqueConstraint('group_id', 'waitlist_type', name='uq_waitlists_group_id_waitlist_type') + ) + op.create_table('calendar_backseat', + sa.Column('account_id', sa.Integer(), nullable=True), + sa.Column('event_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['account_id'], ['accounts.id'], name=op.f('fk_calendar_backseat_account_id_accounts'), onupdate='CASCADE', ondelete='CASCADE'), + sa.ForeignKeyConstraint(['event_id'], ['calendar_event.event_id'], name=op.f('fk_calendar_backseat_event_id_calendar_event'), onupdate='CASCADE', ondelete='CASCADE') + ) + op.create_table('calendar_organizer', + sa.Column('account_id', sa.Integer(), nullable=True), + sa.Column('event_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['account_id'], ['accounts.id'], name=op.f('fk_calendar_organizer_account_id_accounts'), onupdate='CASCADE', ondelete='CASCADE'), + sa.ForeignKeyConstraint(['event_id'], ['calendar_event.event_id'], name=op.f('fk_calendar_organizer_event_id_calendar_event'), onupdate='CASCADE', ondelete='CASCADE') + ) + op.create_table('comp_history_ext_inv', + sa.Column('invite_ext_id', sa.Integer(), nullable=False), + sa.Column('history_id', sa.Integer(), nullable=True), + sa.Column('waitlist_id', sa.Integer(), nullable=True), + sa.Column('time_created', sa.DateTime(), nullable=True), + sa.Column('time_invited', sa.DateTime(), nullable=True), + sa.ForeignKeyConstraint(['history_id'], ['comp_history.history_id'], name=op.f('fk_comp_history_ext_inv_history_id_comp_history')), + sa.ForeignKeyConstraint(['waitlist_id'], ['waitlists.id'], name=op.f('fk_comp_history_ext_inv_waitlist_id_waitlists')), + sa.PrimaryKeyConstraint('invite_ext_id', name=op.f('pk_comp_history_ext_inv')) + ) + op.create_table('comp_history_fits', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('history_id', sa.Integer(), nullable=True), + sa.Column('fit_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['fit_id'], ['fittings.id'], name=op.f('fk_comp_history_fits_fit_id_fittings')), + sa.ForeignKeyConstraint(['history_id'], ['comp_history.history_id'], name=op.f('fk_comp_history_fits_history_id_comp_history')), + sa.PrimaryKeyConstraint('id', name=op.f('pk_comp_history_fits')) + ) + op.create_table('role_changes', + sa.Column('role_change_id', sa.Integer(), nullable=False), + sa.Column('entry_id', sa.Integer(), nullable=False), + sa.Column('role_id', sa.Integer(), nullable=False), + sa.Column('added', sa.Boolean(name='added'), nullable=False), + sa.ForeignKeyConstraint(['entry_id'], ['account_notes.entry_id'], name=op.f('fk_role_changes_entry_id_account_notes'), onupdate='CASCADE', ondelete='CASCADE'), + sa.ForeignKeyConstraint(['role_id'], ['roles.id'], name=op.f('fk_role_changes_role_id_roles'), onupdate='CASCADE', ondelete='CASCADE'), + sa.PrimaryKeyConstraint('role_change_id', name=op.f('pk_role_changes')) + ) + op.create_table('tokenscope', + sa.Column('token_id', sa.Integer(), nullable=False), + sa.Column('scope_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['scope_id'], ['eveapiscope.scope_id'], name=op.f('fk_tokenscope_scope_id_eveapiscope'), onupdate='CASCADE', ondelete='CASCADE'), + sa.ForeignKeyConstraint(['token_id'], ['ssotoken.account_id'], name=op.f('fk_tokenscope_token_id_ssotoken'), onupdate='CASCADE', ondelete='CASCADE'), + sa.PrimaryKeyConstraint('token_id', 'scope_id', name=op.f('pk_tokenscope')) + ) + op.create_table('trivia_question', + sa.Column('question_id', sa.Integer(), nullable=False), + sa.Column('trivia_id', sa.Integer(), nullable=True), + sa.Column('question_text', sa.String(length=1000), nullable=True), + sa.Column('answer_type', sa.String(length=255), nullable=True), + sa.Column('answer_connection', sa.Enum('AND', 'OR', 'NOT', 'NONE', name='answer_connection'), nullable=True), + sa.Column('input_placeholder', sa.String(length=255), nullable=True), + sa.ForeignKeyConstraint(['trivia_id'], ['trivia.trivia_id'], name=op.f('fk_trivia_question_trivia_id_trivia')), + sa.PrimaryKeyConstraint('question_id', name=op.f('pk_trivia_question')) + ) + op.create_table('trivia_submission', + sa.Column('submission_id', sa.Integer(), nullable=False), + sa.Column('trivia_id', sa.Integer(), nullable=True), + sa.Column('submittor_id', sa.Integer(), nullable=True), + sa.Column('submittor_account_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['submittor_account_id'], ['accounts.id'], name=op.f('fk_trivia_submission_submittor_account_id_accounts')), + sa.ForeignKeyConstraint(['submittor_id'], ['characters.id'], name=op.f('fk_trivia_submission_submittor_id_characters')), + sa.ForeignKeyConstraint(['trivia_id'], ['trivia.trivia_id'], name=op.f('fk_trivia_submission_trivia_id_trivia')), + sa.PrimaryKeyConstraint('submission_id', name=op.f('pk_trivia_submission')) + ) + op.create_table('waitlist_entries', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('creation', sa.DateTime(), nullable=True), + sa.Column('user', sa.Integer(), nullable=True), + sa.Column('waitlist_id', sa.Integer(), nullable=True), + sa.Column('time_invited', sa.DateTime(), nullable=True), + sa.Column('invite_count', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['user'], ['characters.id'], name=op.f('fk_waitlist_entries_user_characters')), + sa.ForeignKeyConstraint(['waitlist_id'], ['waitlists.id'], name=op.f('fk_waitlist_entries_waitlist_id_waitlists'), onupdate='CASCADE', ondelete='CASCADE'), + sa.PrimaryKeyConstraint('id', name=op.f('pk_waitlist_entries')) + ) + op.create_table('trivia_answer', + sa.Column('answer_id', sa.Integer(), nullable=False), + sa.Column('question_id', sa.Integer(), nullable=False), + sa.Column('answer_text', sa.String(length=1000), nullable=True), + sa.ForeignKeyConstraint(['question_id'], ['trivia_question.question_id'], name=op.f('fk_trivia_answer_question_id_trivia_question')), + sa.PrimaryKeyConstraint('answer_id', 'question_id', name=op.f('pk_trivia_answer')) + ) + op.create_table('trivia_submission_answer', + sa.Column('submission_id', sa.Integer(), nullable=False), + sa.Column('question_id', sa.Integer(), nullable=False), + sa.Column('answer_text', sa.String(length=5000), nullable=True), + sa.ForeignKeyConstraint(['question_id'], ['trivia_question.question_id'], name=op.f('fk_trivia_submission_answer_question_id_trivia_question')), + sa.ForeignKeyConstraint(['submission_id'], ['trivia_submission.submission_id'], name=op.f('fk_trivia_submission_answer_submission_id_trivia_submission')), + sa.PrimaryKeyConstraint('submission_id', 'question_id', name=op.f('pk_trivia_submission_answer')) + ) + op.create_table('waitlist_entry_fits', + sa.Column('entry_id', sa.Integer(), nullable=True), + sa.Column('fit_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['entry_id'], ['waitlist_entries.id'], name=op.f('fk_waitlist_entry_fits_entry_id_waitlist_entries'), onupdate='CASCADE', ondelete='CASCADE'), + sa.ForeignKeyConstraint(['fit_id'], ['fittings.id'], name=op.f('fk_waitlist_entry_fits_fit_id_fittings'), onupdate='CASCADE', ondelete='CASCADE'), + sa.PrimaryKeyConstraint('fit_id', name=op.f('pk_waitlist_entry_fits')) + ) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('waitlist_entry_fits') + op.drop_table('trivia_submission_answer') + op.drop_table('trivia_answer') + op.drop_table('waitlist_entries') + op.drop_table('trivia_submission') + op.drop_table('trivia_question') + op.drop_table('tokenscope') + op.drop_table('role_changes') + op.drop_table('comp_history_fits') + op.drop_table('comp_history_ext_inv') + op.drop_table('calendar_organizer') + op.drop_table('calendar_backseat') + op.drop_table('waitlists') + op.drop_table('trivia') + op.drop_table('ssotoken') + op.drop_table('linked_chars') + op.drop_table('fleetmanager') + op.drop_table('fit_module') + op.drop_table('fcs') + op.drop_table('event_history_info') + op.drop_table('crest_fleets') + op.drop_index(op.f('ix_comp_history_time'), table_name='comp_history') + op.drop_table('comp_history') + op.drop_table('ccvote') + op.drop_index(op.f('ix_calendar_event_event_time'), table_name='calendar_event') + op.drop_index(op.f('ix_calendar_event_event_creator_id'), table_name='calendar_event') + op.drop_index(op.f('ix_calendar_event_event_category_id'), table_name='calendar_event') + op.drop_index(op.f('ix_calendar_event_event_approved'), table_name='calendar_event') + op.drop_table('calendar_event') + op.drop_table('backseats') + op.drop_table('account_roles') + op.drop_index(op.f('ix_account_notes_time'), table_name='account_notes') + op.drop_table('account_notes') + op.drop_table('whitelist') + op.drop_table('waitlist_groups') + op.drop_index(op.f('ix_tickets_time'), table_name='tickets') + op.drop_index(op.f('ix_tickets_state'), table_name='tickets') + op.drop_index(op.f('ix_tickets_character_id'), table_name='tickets') + op.drop_table('tickets') + op.drop_table('permission_roles') + op.drop_table('incursion_layout') + op.drop_table('fittings') + op.drop_index(op.f('ix_feedback_user'), table_name='feedback') + op.drop_index(op.f('ix_feedback_last_changed'), table_name='feedback') + op.drop_table('feedback') + op.drop_index(op.f('ix_event_history_entries_time'), table_name='event_history_entries') + op.drop_table('event_history_entries') + op.drop_index(op.f('ix_ban_name'), table_name='ban') + op.drop_table('ban') + op.drop_table('accounts') + op.drop_table('ts_dati') + op.drop_index(op.f('ix_station_station_name'), table_name='station') + op.drop_table('station') + op.drop_index(op.f('ix_solarsystem_solar_system_name'), table_name='solarsystem') + op.drop_table('solarsystem') + op.drop_table('settings') + op.drop_table('roles') + op.drop_table('permissions') + op.drop_index(op.f('ix_invtypes_group_id'), table_name='invtypes') + op.drop_table('invtypes') + op.drop_table('invmarketgroups') + op.drop_table('event_history_types') + op.drop_index(op.f('ix_eveapiscope_scope_name'), table_name='eveapiscope') + op.drop_table('eveapiscope') + op.drop_index(op.f('ix_constellation_constellation_name'), table_name='constellation') + op.drop_table('constellation') + op.drop_table('characters') + op.drop_index(op.f('ix_calendar_category_category_name'), table_name='calendar_category') + op.drop_table('calendar_category') + op.drop_index(op.f('ix_apicache_corporationinfo_name'), table_name='apicache_corporationinfo') + op.drop_index(op.f('ix_apicache_corporationinfo_alliance_id'), table_name='apicache_corporationinfo') + op.drop_table('apicache_corporationinfo') + op.drop_index(op.f('ix_apicache_characterinfo_corporation_id'), table_name='apicache_characterinfo') + op.drop_table('apicache_characterinfo') + op.drop_index(op.f('ix_apicache_characteraffiliation_name'), table_name='apicache_characteraffiliation') + op.drop_index(op.f('ix_apicache_characteraffiliation_corporation_name'), table_name='apicache_characteraffiliation') + op.drop_index(op.f('ix_apicache_characteraffiliation_corporation_id'), table_name='apicache_characteraffiliation') + op.drop_index(op.f('ix_apicache_characteraffiliation_alliance_name'), table_name='apicache_characteraffiliation') + op.drop_index(op.f('ix_apicache_characteraffiliation_alliance_id'), table_name='apicache_characteraffiliation') + op.drop_table('apicache_characteraffiliation') + op.drop_index(op.f('ix_apicache_allianceinfo_executor_corp_id'), table_name='apicache_allianceinfo') + op.drop_index(op.f('ix_apicache_allianceinfo_alliance_name'), table_name='apicache_allianceinfo') + op.drop_table('apicache_allianceinfo') + # ### end Alembic commands ### diff --git a/migrations/versions/2e56087b8ba7_.py b/migrations/versions/2e56087b8ba7_.py deleted file mode 100644 index 129b78c4..00000000 --- a/migrations/versions/2e56087b8ba7_.py +++ /dev/null @@ -1,124 +0,0 @@ -"""empty message - -Revision ID: 2e56087b8ba7 -Revises: None -Create Date: 2016-03-06 09:38:15.793000 - -""" - -# revision identifiers, used by Alembic. -revision = '2e56087b8ba7' -down_revision = None - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_table('apicache_characterid', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('name', sa.String(length=100), nullable=True), - sa.PrimaryKeyConstraint('id'), - sa.UniqueConstraint('name') - ) - op.create_table('characters', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('eve_name', sa.String(length=100), nullable=True), - sa.Column('newbro', sa.Boolean(), nullable=False), - sa.Column('banned', sa.Boolean(), nullable=False), - sa.PrimaryKeyConstraint('id'), - sa.UniqueConstraint('eve_name') - ) - op.create_table('invtypes', - sa.Column('typeID', sa.Integer(), nullable=False), - sa.Column('groupID', sa.Integer(), nullable=True), - sa.Column('typeName', sa.String(length=100), nullable=True), - sa.Column('description', mysql.LONGTEXT(), nullable=True), - sa.Column('mass', mysql.DOUBLE(asdecimal=True), nullable=True), - sa.Column('volume', mysql.DOUBLE(asdecimal=True), nullable=True), - sa.Column('capacity', mysql.DOUBLE(asdecimal=True), nullable=True), - sa.Column('portionSize', sa.Integer(), nullable=True), - sa.Column('raceID', sa.SmallInteger(), nullable=True), - sa.Column('basePrice', sa.DECIMAL(precision=19, scale=4), nullable=True), - sa.Column('published', mysql.TINYINT(), nullable=True), - sa.Column('marketGroupID', sa.BIGINT(), nullable=True), - sa.Column('iconID', sa.BIGINT(), nullable=True), - sa.Column('soundID', sa.BIGINT(), nullable=True), - sa.PrimaryKeyConstraint('typeID') - ) - op.create_index('invTypes_groupid', 'invtypes', ['groupID'], unique=False) - op.create_table('roles', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('name', sa.String(length=50), nullable=True), - sa.Column('is_restrictive', sa.Integer(), nullable=True), - sa.PrimaryKeyConstraint('id'), - sa.UniqueConstraint('name') - ) - op.create_table('waitlists', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('name', sa.String(length=20), nullable=True), - sa.PrimaryKeyConstraint('id'), - sa.UniqueConstraint('name') - ) - op.create_table('accounts', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('current_char', sa.Integer(), nullable=True), - sa.Column('username', sa.String(length=100), nullable=True), - sa.Column('password', sa.String(length=100), nullable=True), - sa.Column('email', sa.String(length=100), nullable=True), - sa.Column('login_token', sa.String(length=64), nullable=True), - sa.ForeignKeyConstraint(['current_char'], ['characters.id'], ), - sa.PrimaryKeyConstraint('id'), - sa.UniqueConstraint('email'), - sa.UniqueConstraint('login_token'), - sa.UniqueConstraint('username') - ) - op.create_table('waitlist_entries', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('creation', sa.DateTime(), nullable=True), - sa.Column('user', sa.Integer(), nullable=True), - sa.Column('waitlist_id', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['user'], ['characters.id'], ), - sa.ForeignKeyConstraint(['waitlist_id'], ['waitlists.id'], onupdate='CASCADE', ondelete='CASCADE'), - sa.PrimaryKeyConstraint('id') - ) - op.create_table('account_roles', - sa.Column('account_id', sa.Integer(), nullable=True), - sa.Column('role_id', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['account_id'], ['accounts.id'], onupdate='CASCADE', ondelete='CASCADE'), - sa.ForeignKeyConstraint(['role_id'], ['roles.id'], onupdate='CASCADE', ondelete='CASCADE') - ) - op.create_table('fittings', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('ship_type', sa.Integer(), nullable=True), - sa.Column('waitlist_id', sa.Integer(), nullable=True), - sa.Column('modules', sa.String(length=5000), nullable=True), - sa.Column('comment', sa.String(length=5000), nullable=True), - sa.ForeignKeyConstraint(['ship_type'], ['invtypes.typeID'], ), - sa.ForeignKeyConstraint(['waitlist_id'], ['waitlist_entries.id'], onupdate='CASCADE', ondelete='CASCADE'), - sa.PrimaryKeyConstraint('id') - ) - op.create_table('linked_chars', - sa.Column('id', sa.Integer(), nullable=True), - sa.Column('char_id', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['char_id'], ['characters.id'], onupdate='CASCADE', ondelete='CASCADE'), - sa.ForeignKeyConstraint(['id'], ['accounts.id'], onupdate='CASCADE', ondelete='CASCADE') - ) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_table('linked_chars') - op.drop_table('fittings') - op.drop_table('account_roles') - op.drop_table('waitlist_entries') - op.drop_table('accounts') - op.drop_table('waitlists') - op.drop_table('roles') - op.drop_index('invTypes_groupid', table_name='invtypes') - op.drop_table('invtypes') - op.drop_table('characters') - op.drop_table('apicache_characterid') - ### end Alembic commands ### diff --git a/migrations/versions/357a30eeb186_.py b/migrations/versions/357a30eeb186_.py deleted file mode 100644 index e212ef3c..00000000 --- a/migrations/versions/357a30eeb186_.py +++ /dev/null @@ -1,26 +0,0 @@ -"""empty message - -Revision ID: 357a30eeb186 -Revises: 7a51a649d6f9 -Create Date: 2017-04-14 14:41:00.685716 - -""" - -# revision identifiers, used by Alembic. -revision = '357a30eeb186' -down_revision = '7a51a649d6f9' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('calendar_category', sa.Column('fixedDescription', mysql.TEXT(), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('calendar_category', 'fixedDescription') - # ### end Alembic commands ### diff --git a/migrations/versions/36abd98c57e5_.py b/migrations/versions/36abd98c57e5_.py deleted file mode 100644 index 7e90e23a..00000000 --- a/migrations/versions/36abd98c57e5_.py +++ /dev/null @@ -1,36 +0,0 @@ -"""empty message - -Revision ID: 36abd98c57e5 -Revises: 23a7fc516054 -Create Date: 2017-02-11 16:28:07.204329 - -""" - -# revision identifiers, used by Alembic. -revision = '36abd98c57e5' -down_revision = '23a7fc516054' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('ccvote', - sa.Column('ccvoteID', sa.Integer(), nullable=False), - sa.Column('voterID', sa.Integer(), nullable=True), - sa.Column('lmvoteID', sa.Integer(), nullable=True), - sa.Column('fcvoteID', sa.Integer(), nullable=True), - sa.Column('time', sa.DateTime(), nullable=True), - sa.ForeignKeyConstraint(['fcvoteID'], ['accounts.id'], ), - sa.ForeignKeyConstraint(['lmvoteID'], ['accounts.id'], ), - sa.ForeignKeyConstraint(['voterID'], ['characters.id'], ), - sa.PrimaryKeyConstraint('ccvoteID') - ) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_table('ccvote') - # ### end Alembic commands ### diff --git a/migrations/versions/3f55d9c10c62_.py b/migrations/versions/3f55d9c10c62_.py deleted file mode 100644 index 46cd6233..00000000 --- a/migrations/versions/3f55d9c10c62_.py +++ /dev/null @@ -1,38 +0,0 @@ -"""empty message - -Revision ID: 3f55d9c10c62 -Revises: 67b88f2530bb -Create Date: 2017-03-29 14:21:21.005320 - -""" - -# revision identifiers, used by Alembic. -revision = '3f55d9c10c62' -down_revision = '67b88f2530bb' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('permissions', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('name', sa.String(length=150), nullable=True), - sa.PrimaryKeyConstraint('id'), - sa.UniqueConstraint('name') - ) - op.create_table('permission_roles', - sa.Column('permission', sa.Integer(), nullable=True), - sa.Column('role', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['permission'], ['permissions.id'], ), - sa.ForeignKeyConstraint(['role'], ['roles.id'], ) - ) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_table('permission_roles') - op.drop_table('permissions') - # ### end Alembic commands ### diff --git a/migrations/versions/44045584e815_.py b/migrations/versions/44045584e815_.py deleted file mode 100644 index 7db727c6..00000000 --- a/migrations/versions/44045584e815_.py +++ /dev/null @@ -1,40 +0,0 @@ -"""empty message - -Revision ID: 44045584e815 -Revises: 44a477268e5e -Create Date: 2016-03-08 19:46:54.564000 - -""" - -# revision identifiers, used by Alembic. -revision = '44045584e815' -down_revision = '44a477268e5e' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_table('solarsystem', - sa.Column('solarSystemID', sa.Integer(), nullable=False), - sa.Column('solarSystemName', sa.String(length=100), nullable=True), - sa.PrimaryKeyConstraint('solarSystemID') - ) - op.create_index(op.f('ix_solarsystem_solarSystemName'), 'solarsystem', ['solarSystemName'], unique=True) - op.create_table('station', - sa.Column('stationID', sa.Integer(), nullable=False), - sa.Column('stationName', sa.String(length=100), nullable=True), - sa.PrimaryKeyConstraint('stationID') - ) - op.create_index(op.f('ix_station_stationName'), 'station', ['stationName'], unique=True) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_index(op.f('ix_station_stationName'), table_name='station') - op.drop_table('station') - op.drop_index(op.f('ix_solarsystem_solarSystemName'), table_name='solarsystem') - op.drop_table('solarsystem') - ### end Alembic commands ### diff --git a/migrations/versions/44a477268e5e_.py b/migrations/versions/44a477268e5e_.py deleted file mode 100644 index 5c8f9909..00000000 --- a/migrations/versions/44a477268e5e_.py +++ /dev/null @@ -1,76 +0,0 @@ -"""empty message - -Revision ID: 44a477268e5e -Revises: 1877262ba3de -Create Date: 2016-03-07 14:53:14.725000 - -""" - -# revision identifiers, used by Alembic. -revision = '44a477268e5e' -down_revision = '1877262ba3de' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_table('apicache_characteraffiliation', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('name', sa.String(length=100), nullable=True), - sa.Column('corporationID', sa.Integer(), nullable=True), - sa.Column('corporationName', sa.String(length=100), nullable=True), - sa.Column('allianceID', sa.Integer(), nullable=True), - sa.Column('allianceName', sa.String(length=100), nullable=True), - sa.Column('expire', sa.DateTime(), nullable=True), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_apicache_characteraffiliation_allianceID'), 'apicache_characteraffiliation', ['allianceID'], unique=False) - op.create_index(op.f('ix_apicache_characteraffiliation_allianceName'), 'apicache_characteraffiliation', ['allianceName'], unique=False) - op.create_index(op.f('ix_apicache_characteraffiliation_corporationID'), 'apicache_characteraffiliation', ['corporationID'], unique=False) - op.create_index(op.f('ix_apicache_characteraffiliation_corporationName'), 'apicache_characteraffiliation', ['corporationName'], unique=False) - op.create_index(op.f('ix_apicache_characteraffiliation_name'), 'apicache_characteraffiliation', ['name'], unique=True) - op.create_table('ban', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('name', sa.String(length=100), nullable=True), - sa.Column('reason', mysql.TEXT(), nullable=True), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_ban_name'), 'ban', ['name'], unique=True) - op.drop_table('alliance_bans') - op.drop_table('corporation_bans') - op.drop_column('characters', 'reason') - op.drop_column('characters', 'banned') - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.add_column('characters', sa.Column('banned', mysql.TINYINT(display_width=1), autoincrement=False, nullable=False)) - op.add_column('characters', sa.Column('reason', mysql.TEXT(), nullable=True)) - op.create_table('corporation_bans', - sa.Column('id', mysql.INTEGER(display_width=11), nullable=False), - sa.Column('name', mysql.VARCHAR(length=100), nullable=True), - sa.Column('reason', mysql.TEXT(), nullable=True), - sa.PrimaryKeyConstraint('id'), - mysql_default_charset=u'utf8', - mysql_engine=u'InnoDB' - ) - op.create_table('alliance_bans', - sa.Column('id', mysql.INTEGER(display_width=11), nullable=False), - sa.Column('name', mysql.VARCHAR(length=100), nullable=True), - sa.Column('reason', mysql.TEXT(), nullable=True), - sa.PrimaryKeyConstraint('id'), - mysql_default_charset=u'utf8', - mysql_engine=u'InnoDB' - ) - op.drop_index(op.f('ix_ban_name'), table_name='ban') - op.drop_table('ban') - op.drop_index(op.f('ix_apicache_characteraffiliation_name'), table_name='apicache_characteraffiliation') - op.drop_index(op.f('ix_apicache_characteraffiliation_corporationName'), table_name='apicache_characteraffiliation') - op.drop_index(op.f('ix_apicache_characteraffiliation_corporationID'), table_name='apicache_characteraffiliation') - op.drop_index(op.f('ix_apicache_characteraffiliation_allianceName'), table_name='apicache_characteraffiliation') - op.drop_index(op.f('ix_apicache_characteraffiliation_allianceID'), table_name='apicache_characteraffiliation') - op.drop_table('apicache_characteraffiliation') - ### end Alembic commands ### diff --git a/migrations/versions/463d72677b83_.py b/migrations/versions/463d72677b83_.py deleted file mode 100644 index ea89b82a..00000000 --- a/migrations/versions/463d72677b83_.py +++ /dev/null @@ -1,26 +0,0 @@ -"""empty message - -Revision ID: 463d72677b83 -Revises: 966332ddb8ba -Create Date: 2016-04-18 22:53:50.477000 - -""" - -# revision identifiers, used by Alembic. -revision = '463d72677b83' -down_revision = '966332ddb8ba' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.add_column('waitlist_groups', sa.Column('influence', sa.Boolean(), server_default='0', nullable=False)) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_column('waitlist_groups', 'influence') - ### end Alembic commands ### diff --git a/migrations/versions/4c4a14a4d869_.py b/migrations/versions/4c4a14a4d869_.py deleted file mode 100644 index 8e78bcd4..00000000 --- a/migrations/versions/4c4a14a4d869_.py +++ /dev/null @@ -1,36 +0,0 @@ -"""empty message - -Revision ID: 4c4a14a4d869 -Revises: 463d72677b83 -Create Date: 2016-04-24 20:09:38.566000 - -""" - -# revision identifiers, used by Alembic. -revision = '4c4a14a4d869' -down_revision = '463d72677b83' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - - op.alter_column('comp_history', 'action', - existing_type=mysql.VARCHAR(length=1000), - type_=sa.String(length=20), - existing_nullable=True) - op.create_index(op.f('ix_comp_history_time'), 'comp_history', ['time'], unique=False) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_index(op.f('ix_comp_history_time'), table_name='comp_history') - op.alter_column('comp_history', 'action', - existing_type=sa.String(length=20), - type_=mysql.VARCHAR(length=1000), - existing_nullable=True) - - ### end Alembic commands ### diff --git a/migrations/versions/4f84a51ec263_.py b/migrations/versions/4f84a51ec263_.py deleted file mode 100644 index d9cb6341..00000000 --- a/migrations/versions/4f84a51ec263_.py +++ /dev/null @@ -1,44 +0,0 @@ -"""empty message - -Revision ID: 4f84a51ec263 -Revises: d40cb6e101dc -Create Date: 2016-04-07 18:36:22.701000 - -""" - -# revision identifiers, used by Alembic. -revision = '4f84a51ec263' -down_revision = 'd40cb6e101dc' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_table('comp_history', - sa.Column('historyID', sa.Integer(), nullable=False), - sa.Column('time', sa.DateTime(), nullable=True), - sa.Column('sourceID', sa.Integer(), nullable=True), - sa.Column('targetID', sa.Integer(), nullable=False), - sa.Column('action', sa.String(length=1000), nullable=True), - sa.ForeignKeyConstraint(['sourceID'], ['accounts.id'], ), - sa.ForeignKeyConstraint(['targetID'], ['characters.id'], ), - sa.PrimaryKeyConstraint('historyID') - ) - op.create_table('comp_history_fits', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('historyID', sa.Integer(), nullable=True), - sa.Column('fitID', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['fitID'], ['fittings.id'], ), - sa.ForeignKeyConstraint(['historyID'], ['comp_history.historyID'], ), - sa.PrimaryKeyConstraint('id') - ) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_table('comp_history_fits') - op.drop_table('comp_history') - ### end Alembic commands ### diff --git a/migrations/versions/565cb2af7fa3_.py b/migrations/versions/565cb2af7fa3_.py deleted file mode 100644 index 278cd368..00000000 --- a/migrations/versions/565cb2af7fa3_.py +++ /dev/null @@ -1,47 +0,0 @@ -"""empty message - -Revision ID: 565cb2af7fa3 -Revises: 59521a50becc -Create Date: 2016-04-13 17:56:39.730000 - -""" - -# revision identifiers, used by Alembic. -revision = '565cb2af7fa3' -down_revision = '59521a50becc' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_table('waitlist_groups', - sa.Column('groupID', sa.Integer(), nullable=False), - sa.Column('groupName', sa.String(length=50), nullable=False), - sa.Column('displayName', sa.String(length=50), nullable=False), - sa.Column('xupwlID', sa.Integer(), nullable=False), - sa.Column('logiwlID', sa.Integer(), nullable=False), - sa.Column('dpswlID', sa.Integer(), nullable=False), - sa.Column('sniperwlID', sa.Integer(), nullable=False), - sa.Column('otherwlID', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['dpswlID'], [u'waitlists.id'], ), - sa.ForeignKeyConstraint(['logiwlID'], [u'waitlists.id'], ), - sa.ForeignKeyConstraint(['otherwlID'], [u'waitlists.id'], ), - sa.ForeignKeyConstraint(['sniperwlID'], [u'waitlists.id'], ), - sa.ForeignKeyConstraint(['xupwlID'], [u'waitlists.id'], ), - sa.PrimaryKeyConstraint('groupID'), - sa.UniqueConstraint('displayName'), - sa.UniqueConstraint('groupName') - ) - op.add_column(u'waitlists', sa.Column('groupID', sa.Integer(), nullable=True)) - op.create_foreign_key(None, 'waitlists', 'waitlist_groups', ['groupID'], ['groupID']) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint(None, 'waitlists', type_='foreignkey') - op.drop_column(u'waitlists', 'groupID') - op.drop_table('waitlist_groups') - ### end Alembic commands ### diff --git a/migrations/versions/59521a50becc_.py b/migrations/versions/59521a50becc_.py deleted file mode 100644 index 47f6f83d..00000000 --- a/migrations/versions/59521a50becc_.py +++ /dev/null @@ -1,28 +0,0 @@ -"""empty message - -Revision ID: 59521a50becc -Revises: f549a192f3e5 -Create Date: 2016-04-12 19:41:05.201000 - -""" - -# revision identifiers, used by Alembic. -revision = '59521a50becc' -down_revision = 'f549a192f3e5' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.add_column('comp_history_ext_inv', sa.Column('historyID', sa.Integer(), nullable=True)) - op.create_foreign_key(None, 'comp_history_ext_inv', 'comp_history', ['historyID'], ['historyID']) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint(None, 'comp_history_ext_inv', type_='foreignkey') - op.drop_column('comp_history_ext_inv', 'historyID') - ### end Alembic commands ### diff --git a/migrations/versions/61cdca7328a6_.py b/migrations/versions/61cdca7328a6_.py deleted file mode 100644 index 441bb08e..00000000 --- a/migrations/versions/61cdca7328a6_.py +++ /dev/null @@ -1,57 +0,0 @@ -"""empty message - -Revision ID: 61cdca7328a6 -Revises: 877d1e12cd90 -Create Date: 2016-05-10 17:31:03.793000 - -""" - -# revision identifiers, used by Alembic. -revision = '61cdca7328a6' -down_revision = '877d1e12cd90' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_table('event_history_types', - sa.Column('typeID', sa.Integer(), nullable=False), - sa.Column('typeName', sa.String(length=20), nullable=True), - sa.PrimaryKeyConstraint('typeID'), - sa.UniqueConstraint('typeName') - ) - op.create_table('backseats', - sa.Column('accountID', sa.Integer(), nullable=True), - sa.Column('groupID', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['accountID'], ['accounts.id'], ondelete='CASCADE'), - sa.ForeignKeyConstraint(['groupID'], ['waitlist_groups.groupID'], ondelete='CASCADE') - ) - op.create_table('event_history_entries', - sa.Column('historyID', sa.Integer(), nullable=False), - sa.Column('time', sa.DateTime(), nullable=True), - sa.Column('typeID', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['typeID'], ['event_history_types.typeID'], ), - sa.PrimaryKeyConstraint('historyID') - ) - op.create_index(op.f('ix_event_history_entries_time'), 'event_history_entries', ['time'], unique=False) - op.create_table('event_history_info', - sa.Column('infoID', sa.Integer(), nullable=False), - sa.Column('historyID', sa.Integer(), nullable=True), - sa.Column('infoType', sa.Integer(), nullable=True), - sa.Column('referenceID', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['historyID'], ['event_history_entries.historyID'], ), - sa.PrimaryKeyConstraint('infoID') - ) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_table('event_history_info') - op.drop_index(op.f('ix_event_history_entries_time'), table_name='event_history_entries') - op.drop_table('event_history_entries') - op.drop_table('backseats') - op.drop_table('event_history_types') - ### end Alembic commands ### diff --git a/migrations/versions/66503b938c08_.py b/migrations/versions/66503b938c08_.py deleted file mode 100644 index 2543cfd0..00000000 --- a/migrations/versions/66503b938c08_.py +++ /dev/null @@ -1,34 +0,0 @@ -"""empty message - -Revision ID: 66503b938c08 -Revises: 913428ec59ed -Create Date: 2016-04-08 23:37:32.304000 - -""" - -# revision identifiers, used by Alembic. -revision = '66503b938c08' -down_revision = '913428ec59ed' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.alter_column('accounts', 'login_token', - existing_type=mysql.VARCHAR(length=64), - type_=sa.String(length=16), - existing_nullable=True) - op.add_column('characters', sa.Column('login_token', sa.String(length=16), nullable=True)) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_column('characters', 'login_token') - op.alter_column('accounts', 'login_token', - existing_type=sa.String(length=16), - type_=mysql.VARCHAR(length=64), - existing_nullable=True) - ### end Alembic commands ### diff --git a/migrations/versions/67b88f2530bb_.py b/migrations/versions/67b88f2530bb_.py deleted file mode 100644 index 82f896ba..00000000 --- a/migrations/versions/67b88f2530bb_.py +++ /dev/null @@ -1,26 +0,0 @@ -"""empty message - -Revision ID: 67b88f2530bb -Revises: c44e71e3e1b6 -Create Date: 2017-02-20 16:32:19.153215 - -""" - -# revision identifiers, used by Alembic. -revision = '67b88f2530bb' -down_revision = 'c44e71e3e1b6' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('trivia', sa.Column('alertText', sa.String(length=1000), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('trivia', 'alertText') - # ### end Alembic commands ### diff --git a/migrations/versions/686609cc9783_.py b/migrations/versions/686609cc9783_.py deleted file mode 100644 index 3a689b7f..00000000 --- a/migrations/versions/686609cc9783_.py +++ /dev/null @@ -1,34 +0,0 @@ -"""empty message - -Revision ID: 686609cc9783 -Revises: d464aa706238 -Create Date: 2017-01-30 14:58:22.760000 - -""" - -# revision identifiers, used by Alembic. -revision = '686609cc9783' -down_revision = 'd464aa706238' - -from alembic import op - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint(u'ssotoken_ibfk_1', 'ssotoken', type_='foreignkey') - op.create_foreign_key(None, 'ssotoken', 'accounts', ['accountID'], ['id'], onupdate='CASCADE', ondelete='CASCADE') - op.drop_constraint(u'tokenscope_ibfk_1', 'tokenscope', type_='foreignkey') - op.drop_constraint(u'tokenscope_ibfk_2', 'tokenscope', type_='foreignkey') - op.create_foreign_key(None, 'tokenscope', 'eveapiscope', ['scopeID'], ['scopeID'], onupdate='CASCADE', ondelete='CASCADE') - op.create_foreign_key(None, 'tokenscope', 'ssotoken', ['tokenID'], ['accountID'], onupdate='CASCADE', ondelete='CASCADE') - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint(None, 'tokenscope', type_='foreignkey') - op.drop_constraint(None, 'tokenscope', type_='foreignkey') - op.create_foreign_key(u'tokenscope_ibfk_2', 'tokenscope', 'ssotoken', ['tokenID'], ['accountID']) - op.create_foreign_key(u'tokenscope_ibfk_1', 'tokenscope', 'eveapiscope', ['scopeID'], ['scopeID']) - op.drop_constraint(None, 'ssotoken', type_='foreignkey') - op.create_foreign_key(u'ssotoken_ibfk_1', 'ssotoken', 'accounts', ['accountID'], ['id']) - ### end Alembic commands ### diff --git a/migrations/versions/687970b3617d_.py b/migrations/versions/687970b3617d_.py deleted file mode 100644 index 1e385f4a..00000000 --- a/migrations/versions/687970b3617d_.py +++ /dev/null @@ -1,70 +0,0 @@ -"""empty message - -Revision ID: 687970b3617d -Revises: 686609cc9783 -Create Date: 2017-02-03 15:58:52.570076 - -""" - -# revision identifiers, used by Alembic. -revision = '687970b3617d' -down_revision = '686609cc9783' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('calendar_category', - sa.Column('categoryID', sa.Integer(), nullable=False), - sa.Column('categoryName', sa.String(length=50), nullable=True), - sa.Column('fixedTitle', sa.String(length=200), nullable=True), - sa.PrimaryKeyConstraint('categoryID') - ) - op.create_index(op.f('ix_calendar_category_categoryName'), 'calendar_category', ['categoryName'], unique=False) - op.create_table('calendar_event', - sa.Column('eventID', sa.Integer(), nullable=False), - sa.Column('eventCreatorID', sa.Integer(), nullable=True), - sa.Column('eventTitle', mysql.TEXT(), nullable=True), - sa.Column('eventDescription', mysql.TEXT(), nullable=True), - sa.Column('eventCategoryID', sa.Integer(), nullable=True), - sa.Column('eventApproved', sa.Boolean(), nullable=True), - sa.Column('eventTime', sa.DateTime(), nullable=True), - sa.Column('approverID', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['approverID'], ['accounts.id'], onupdate='CASCADE', ondelete='CASCADE'), - sa.ForeignKeyConstraint(['eventCategoryID'], ['calendar_category.categoryID'], onupdate='CASCADE'), - sa.ForeignKeyConstraint(['eventCreatorID'], ['accounts.id'], onupdate='CASCADE', ondelete='CASCADE'), - sa.PrimaryKeyConstraint('eventID') - ) - op.create_index(op.f('ix_calendar_event_eventApproved'), 'calendar_event', ['eventApproved'], unique=False) - op.create_index(op.f('ix_calendar_event_eventCategoryID'), 'calendar_event', ['eventCategoryID'], unique=False) - op.create_index(op.f('ix_calendar_event_eventCreatorID'), 'calendar_event', ['eventCreatorID'], unique=False) - op.create_index(op.f('ix_calendar_event_eventTime'), 'calendar_event', ['eventTime'], unique=False) - op.create_table('calendar_backseat', - sa.Column('accountID', sa.Integer(), nullable=True), - sa.Column('eventID', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['accountID'], ['accounts.id'], onupdate='CASCADE', ondelete='CASCADE'), - sa.ForeignKeyConstraint(['eventID'], ['calendar_event.eventID'], onupdate='CASCADE', ondelete='CASCADE') - ) - op.create_table('calendar_organizer', - sa.Column('accountID', sa.Integer(), nullable=True), - sa.Column('eventID', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['accountID'], ['accounts.id'], onupdate='CASCADE', ondelete='CASCADE'), - sa.ForeignKeyConstraint(['eventID'], ['calendar_event.eventID'], onupdate='CASCADE', ondelete='CASCADE') - ) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_table('calendar_organizer') - op.drop_index(op.f('ix_calendar_event_eventTime'), table_name='calendar_event') - op.drop_index(op.f('ix_calendar_event_eventCreatorID'), table_name='calendar_event') - op.drop_index(op.f('ix_calendar_event_eventCategoryID'), table_name='calendar_event') - op.drop_index(op.f('ix_calendar_event_eventApproved'), table_name='calendar_event') - op.drop_table('calendar_event') - op.drop_index(op.f('ix_calendar_category_categoryName'), table_name='calendar_category') - op.drop_table('calendar_category') - op.drop_table('calendar_backseat') - # ### end Alembic commands ### diff --git a/migrations/versions/7a51a649d6f9_.py b/migrations/versions/7a51a649d6f9_.py deleted file mode 100644 index 9f7c01cd..00000000 --- a/migrations/versions/7a51a649d6f9_.py +++ /dev/null @@ -1,75 +0,0 @@ -"""empty message - -Revision ID: 7a51a649d6f9 -Revises: 3f55d9c10c62 -Create Date: 2017-04-13 22:45:21.781813 - -""" - -# revision identifiers, used by Alembic. -revision = '7a51a649d6f9' -down_revision = '3f55d9c10c62' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('apicache_allianceinfo', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('allianceName', sa.String(length=100), nullable=True), - sa.Column('dateFounded', sa.DateTime(), nullable=True), - sa.Column('executorCorpID', sa.Integer(), nullable=True), - sa.Column('ticker', sa.String(length=10), nullable=True), - sa.Column('expire', sa.DateTime(), nullable=True), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_apicache_allianceinfo_allianceName'), 'apicache_allianceinfo', ['allianceName'], unique=False) - op.create_index(op.f('ix_apicache_allianceinfo_executorCorpID'), 'apicache_allianceinfo', ['executorCorpID'], unique=False) - op.drop_table('apicache_characterid') - op.add_column('apicache_characterinfo', sa.Column('characterBirthday', sa.DateTime(), nullable=False)) - op.add_column('apicache_characterinfo', sa.Column('raceID', sa.Integer(), nullable=True)) - op.drop_column('apicache_characterinfo', 'corporationName') - op.add_column('apicache_corporationinfo', sa.Column('ceoID', sa.Integer(), nullable=True)) - op.add_column('apicache_corporationinfo', sa.Column('creationDate', sa.DateTime(), nullable=True)) - op.add_column('apicache_corporationinfo', sa.Column('creatorID', sa.Integer(), nullable=True)) - op.add_column('apicache_corporationinfo', sa.Column('description', mysql.LONGTEXT(), nullable=True)) - op.add_column('apicache_corporationinfo', sa.Column('memberCount', sa.Integer(), nullable=True)) - op.add_column('apicache_corporationinfo', sa.Column('taxRate', sa.Float(), nullable=True)) - op.add_column('apicache_corporationinfo', sa.Column('ticker', sa.String(length=10), nullable=True)) - op.add_column('apicache_corporationinfo', sa.Column('url', sa.String(length=500), nullable=True)) - op.drop_index('ix_apicache_corporationinfo_allianceName', table_name='apicache_corporationinfo') - op.drop_column('apicache_corporationinfo', 'allianceName') - op.drop_column('roles', 'is_restrictive') - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('roles', sa.Column('is_restrictive', mysql.INTEGER(display_width=11), autoincrement=False, nullable=True)) - op.add_column('apicache_corporationinfo', sa.Column('allianceName', mysql.VARCHAR(collation='utf8mb4_unicode_ci', length=100), nullable=True)) - op.create_index('ix_apicache_corporationinfo_allianceName', 'apicache_corporationinfo', ['allianceName'], unique=False) - op.drop_column('apicache_corporationinfo', 'url') - op.drop_column('apicache_corporationinfo', 'ticker') - op.drop_column('apicache_corporationinfo', 'taxRate') - op.drop_column('apicache_corporationinfo', 'memberCount') - op.drop_column('apicache_corporationinfo', 'description') - op.drop_column('apicache_corporationinfo', 'creatorID') - op.drop_column('apicache_corporationinfo', 'creationDate') - op.drop_column('apicache_corporationinfo', 'ceoID') - op.add_column('apicache_characterinfo', sa.Column('corporationName', mysql.VARCHAR(collation='utf8mb4_unicode_ci', length=100), nullable=True)) - op.drop_column('apicache_characterinfo', 'raceID') - op.drop_column('apicache_characterinfo', 'characterBirthday') - op.create_table('apicache_characterid', - sa.Column('id', mysql.INTEGER(display_width=11), nullable=False), - sa.Column('name', mysql.VARCHAR(collation='utf8mb4_unicode_ci', length=100), nullable=True), - sa.PrimaryKeyConstraint('id'), - mysql_collate='utf8mb4_unicode_ci', - mysql_default_charset='utf8mb4', - mysql_engine='InnoDB' - ) - op.drop_index(op.f('ix_apicache_allianceinfo_executorCorpID'), table_name='apicache_allianceinfo') - op.drop_index(op.f('ix_apicache_allianceinfo_allianceName'), table_name='apicache_allianceinfo') - op.drop_table('apicache_allianceinfo') - # ### end Alembic commands ### diff --git a/migrations/versions/7b75d315ee36_.py b/migrations/versions/7b75d315ee36_.py deleted file mode 100644 index b76b5bbe..00000000 --- a/migrations/versions/7b75d315ee36_.py +++ /dev/null @@ -1,25 +0,0 @@ -"""empty message - -Revision ID: 7b75d315ee36 -Revises: 4c4a14a4d869 -Create Date: 2016-04-27 14:31:10.549000 - -""" - -# revision identifiers, used by Alembic. -revision = '7b75d315ee36' -down_revision = '4c4a14a4d869' - -from alembic import op -import sqlalchemy as sa - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.add_column('accounts', sa.Column('disabled', sa.Boolean(), server_default=sa.text(u'false'), nullable=True)) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ## - op.drop_column('accounts', 'disabled') - ### end Alembic commands ### diff --git a/migrations/versions/8113af5e2643_.py b/migrations/versions/8113af5e2643_.py deleted file mode 100644 index 38485c53..00000000 --- a/migrations/versions/8113af5e2643_.py +++ /dev/null @@ -1,26 +0,0 @@ -"""empty message - -Revision ID: 8113af5e2643 -Revises: 81ff73bf2f86 -Create Date: 2016-05-11 21:01:46.096000 - -""" - -# revision identifiers, used by Alembic. -revision = '8113af5e2643' -down_revision = '81ff73bf2f86' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.add_column('characters', sa.Column('teamspeak_poke', sa.Boolean(), server_default='1', nullable=False)) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_column('characters', 'teamspeak_poke') - ### end Alembic commands ### diff --git a/migrations/versions/81ff73bf2f86_.py b/migrations/versions/81ff73bf2f86_.py deleted file mode 100644 index 889e3888..00000000 --- a/migrations/versions/81ff73bf2f86_.py +++ /dev/null @@ -1,46 +0,0 @@ -"""empty message - -Revision ID: 81ff73bf2f86 -Revises: db3c76f99dea -Create Date: 2016-05-11 19:34:46.848000 - -""" - -# revision identifiers, used by Alembic. -revision = '81ff73bf2f86' -down_revision = 'db3c76f99dea' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_table('fcs', - sa.Column('accountID', sa.Integer(), nullable=True), - sa.Column('groupID', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['accountID'], ['accounts.id'], ondelete='CASCADE'), - sa.ForeignKeyConstraint(['groupID'], ['waitlist_groups.groupID'], ondelete='CASCADE') - ) - op.create_table('fleetmanager', - sa.Column('accountID', sa.Integer(), nullable=True), - sa.Column('groupID', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['accountID'], ['accounts.id'], ondelete='CASCADE'), - sa.ForeignKeyConstraint(['groupID'], ['waitlist_groups.groupID'], ondelete='CASCADE') - ) - op.drop_constraint(u'waitlist_groups_ibfk_8', 'waitlist_groups', type_='foreignkey') - op.drop_constraint(u'waitlist_groups_ibfk_9', 'waitlist_groups', type_='foreignkey') - op.drop_column(u'waitlist_groups', 'fcID') - op.drop_column(u'waitlist_groups', 'managerID') - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.add_column(u'waitlist_groups', sa.Column('managerID', mysql.INTEGER(display_width=11), autoincrement=False, nullable=True)) - op.add_column(u'waitlist_groups', sa.Column('fcID', mysql.INTEGER(display_width=11), autoincrement=False, nullable=True)) - op.create_foreign_key(u'waitlist_groups_ibfk_9', 'waitlist_groups', 'characters', ['fcID'], ['id']) - op.create_foreign_key(u'waitlist_groups_ibfk_8', 'waitlist_groups', 'accounts', ['managerID'], ['id']) - op.drop_table('fleetmanager') - op.drop_table('fcs') - ### end Alembic commands ### diff --git a/migrations/versions/839456a7e73e_.py b/migrations/versions/839456a7e73e_.py deleted file mode 100644 index a4b6f8f8..00000000 --- a/migrations/versions/839456a7e73e_.py +++ /dev/null @@ -1,69 +0,0 @@ -"""empty message - -Revision ID: 839456a7e73e -Revises: d58d1159149e -Create Date: 2016-03-06 19:05:54.339000 - -""" - -# revision identifiers, used by Alembic. -revision = '839456a7e73e' -down_revision = 'd58d1159149e' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_table('alliance_bans', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('name', sa.String(length=100), nullable=True), - sa.Column('reason', mysql.TEXT(), nullable=True), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_alliance_bans_name'), 'alliance_bans', ['name'], unique=True) - op.create_table('apicache_corporationinfo', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('name', sa.String(length=100), nullable=True), - sa.Column('allianceID', sa.Integer(), nullable=True), - sa.Column('allianceName', sa.String(length=100), nullable=True), - sa.Column('expire', sa.DateTime(), nullable=True), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_apicache_corporationinfo_allianceID'), 'apicache_corporationinfo', ['allianceID'], unique=False) - op.create_index(op.f('ix_apicache_corporationinfo_allianceName'), 'apicache_corporationinfo', ['allianceName'], unique=False) - op.create_index(op.f('ix_apicache_corporationinfo_name'), 'apicache_corporationinfo', ['name'], unique=True) - op.create_table('apicache_characterinfo', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('corporationID', sa.Integer(), nullable=True), - sa.Column('corporationName', sa.String(length=100), nullable=True), - sa.Column('expire', sa.DateTime(), nullable=True), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_apicache_characterinfo_corporationID'), 'apicache_characterinfo', ['corporationID'], unique=False) - op.create_table('corporation_bans', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('name', sa.String(length=100), nullable=True), - sa.Column('reason', mysql.TEXT(), nullable=True), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_corporation_bans_name'), 'corporation_bans', ['name'], unique=True) - op.add_column(u'characters', sa.Column('reason', mysql.TEXT(), nullable=True)) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_column(u'characters', 'reason') - op.drop_index(op.f('ix_corporation_bans_name'), table_name='corporation_bans') - op.drop_table('corporation_bans') - op.drop_index(op.f('ix_apicache_characterinfo_corporationID'), table_name='apicache_characterinfo') - op.drop_table('apicache_characterinfo') - op.drop_index(op.f('ix_apicache_corporationinfo_name'), table_name='apicache_corporationinfo') - op.drop_index(op.f('ix_apicache_corporationinfo_allianceName'), table_name='apicache_corporationinfo') - op.drop_index(op.f('ix_apicache_corporationinfo_allianceID'), table_name='apicache_corporationinfo') - op.drop_table('apicache_corporationinfo') - op.drop_index(op.f('ix_alliance_bans_name'), table_name='alliance_bans') - op.drop_table('alliance_bans') - ### end Alembic commands ### diff --git a/migrations/versions/871a8dd84cf7_.py b/migrations/versions/871a8dd84cf7_.py deleted file mode 100644 index 0e328b49..00000000 --- a/migrations/versions/871a8dd84cf7_.py +++ /dev/null @@ -1,42 +0,0 @@ -"""empty message - -Revision ID: 871a8dd84cf7 -Revises: 44045584e815 -Create Date: 2016-03-10 08:10:38.426000 - -""" - -# revision identifiers, used by Alembic. -revision = '871a8dd84cf7' -down_revision = '44045584e815' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_column('invtypes', 'capacity') - op.drop_column('invtypes', 'raceID') - op.drop_column('invtypes', 'iconID') - op.drop_column('invtypes', 'published') - op.drop_column('invtypes', 'volume') - op.drop_column('invtypes', 'soundID') - op.drop_column('invtypes', 'mass') - op.drop_column('invtypes', 'basePrice') - op.drop_column('invtypes', 'portionSize') - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.add_column('invtypes', sa.Column('portionSize', mysql.INTEGER(display_width=11), autoincrement=False, nullable=True)) - op.add_column('invtypes', sa.Column('basePrice', mysql.DECIMAL(precision=19, scale=4), nullable=True)) - op.add_column('invtypes', sa.Column('mass', mysql.DOUBLE(asdecimal=True), nullable=True)) - op.add_column('invtypes', sa.Column('soundID', mysql.BIGINT(display_width=20), autoincrement=False, nullable=True)) - op.add_column('invtypes', sa.Column('volume', mysql.DOUBLE(asdecimal=True), nullable=True)) - op.add_column('invtypes', sa.Column('published', mysql.TINYINT(display_width=4), autoincrement=False, nullable=True)) - op.add_column('invtypes', sa.Column('iconID', mysql.BIGINT(display_width=20), autoincrement=False, nullable=True)) - op.add_column('invtypes', sa.Column('raceID', mysql.SMALLINT(display_width=6), autoincrement=False, nullable=True)) - op.add_column('invtypes', sa.Column('capacity', mysql.DOUBLE(asdecimal=True), nullable=True)) - ### end Alembic commands ### diff --git a/migrations/versions/877d1e12cd90_.py b/migrations/versions/877d1e12cd90_.py deleted file mode 100644 index b0fefab3..00000000 --- a/migrations/versions/877d1e12cd90_.py +++ /dev/null @@ -1,30 +0,0 @@ -"""empty message - -Revision ID: 877d1e12cd90 -Revises: dee6801e4a87 -Create Date: 2016-05-06 01:46:35.850000 - -""" - -# revision identifiers, used by Alembic. -revision = '877d1e12cd90' -down_revision = 'dee6801e4a87' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.alter_column('crest_fleets', 'compID', - existing_type=mysql.INTEGER(display_width=11), - nullable=True) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.alter_column('crest_fleets', 'compID', - existing_type=mysql.INTEGER(display_width=11), - nullable=False) - ### end Alembic commands ### diff --git a/migrations/versions/8f6e88746b77_.py b/migrations/versions/8f6e88746b77_.py deleted file mode 100644 index b048ab5b..00000000 --- a/migrations/versions/8f6e88746b77_.py +++ /dev/null @@ -1,33 +0,0 @@ -"""empty message - -Revision ID: 8f6e88746b77 -Revises: cf588e0dfd5c -Create Date: 2017-01-14 02:15:20.627000 - -""" - -# revision identifiers, used by Alembic. -revision = '8f6e88746b77' -down_revision = 'cf588e0dfd5c' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_table('fit_module', - sa.Column('fitID', sa.Integer(), nullable=False), - sa.Column('moduleID', sa.Integer(), nullable=False), - sa.Column('amount', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['fitID'], ['fittings.id'], ), - sa.ForeignKeyConstraint(['moduleID'], ['invtypes.typeID'], ), - sa.PrimaryKeyConstraint('fitID', 'moduleID') - ) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_table('fit_module') - ### end Alembic commands ### diff --git a/migrations/versions/913428ec59ed_.py b/migrations/versions/913428ec59ed_.py deleted file mode 100644 index 1554babe..00000000 --- a/migrations/versions/913428ec59ed_.py +++ /dev/null @@ -1,26 +0,0 @@ -"""empty message - -Revision ID: 913428ec59ed -Revises: f3b1988db9b9 -Create Date: 2016-04-07 23:09:03.497000 - -""" - -# revision identifiers, used by Alembic. -revision = '913428ec59ed' -down_revision = 'f3b1988db9b9' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_column('waitlist_entry_fits', 'id') - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.add_column('waitlist_entry_fits', sa.Column('id', mysql.INTEGER(display_width=11), nullable=False)) - ### end Alembic commands ### diff --git a/migrations/versions/95eb3cae9e68_.py b/migrations/versions/95eb3cae9e68_.py deleted file mode 100644 index 5c6a96cd..00000000 --- a/migrations/versions/95eb3cae9e68_.py +++ /dev/null @@ -1,49 +0,0 @@ -"""empty message - -Revision ID: 95eb3cae9e68 -Revises: aacfc1555e57 -Create Date: 2016-12-30 20:43:41.455000 - -""" - -# revision identifiers, used by Alembic. -revision = '95eb3cae9e68' -down_revision = 'aacfc1555e57' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_table('role_history', - sa.Column('entryID', sa.Integer(), nullable=False), - sa.Column('accountID', sa.Integer(), nullable=False), - sa.Column('byAccountID', sa.Integer(), nullable=False), - sa.Column('note', mysql.TEXT(), nullable=True), - sa.Column('time', sa.DateTime(), nullable=True), - sa.ForeignKeyConstraint(['accountID'], ['accounts.id'], ), - sa.ForeignKeyConstraint(['byAccountID'], ['accounts.id'], ), - sa.PrimaryKeyConstraint('entryID') - ) - op.create_index(op.f('ix_role_history_time'), 'role_history', ['time'], unique=False) - - op.create_table('role_changes', - sa.Column('roleChangeID', sa.Integer(), nullable=False), - sa.Column('entryID', sa.Integer(), nullable=False), - sa.Column('roleID', sa.Integer(), nullable=False), - sa.Column('added', sa.Boolean(), nullable=False), - sa.ForeignKeyConstraint(['entryID'], ['role_history.entryID'], onupdate='CASCADE', ondelete='CASCADE'), - sa.ForeignKeyConstraint(['roleID'], ['roles.id'], onupdate='CASCADE', ondelete='CASCADE'), - sa.PrimaryKeyConstraint('roleChangeID') - ) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ## - op.drop_table('role_changes') - op.drop_index(op.f('ix_role_history_time'), table_name='role_history') - op.drop_table('role_history') - - ### end Alembic commands ### diff --git a/migrations/versions/966332ddb8ba_.py b/migrations/versions/966332ddb8ba_.py deleted file mode 100644 index 5e5ad032..00000000 --- a/migrations/versions/966332ddb8ba_.py +++ /dev/null @@ -1,33 +0,0 @@ -"""empty message - -Revision ID: 966332ddb8ba -Revises: b4a6bbfeef64 -Create Date: 2016-04-18 18:18:46.267000 - -""" - -# revision identifiers, used by Alembic. -revision = '966332ddb8ba' -down_revision = 'b4a6bbfeef64' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_table('whitelist', - sa.Column('characterID', sa.Integer(), nullable=False), - sa.Column('reason', mysql.TEXT(), nullable=True), - sa.Column('adminID', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['adminID'], [u'characters.id'], ), - sa.ForeignKeyConstraint(['characterID'], [u'characters.id'], ), - sa.PrimaryKeyConstraint('characterID') - ) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ## - op.drop_table('whitelist') - ### end Alembic commands ### diff --git a/migrations/versions/9ad747adbff1_.py b/migrations/versions/9ad747adbff1_.py deleted file mode 100644 index d24e1711..00000000 --- a/migrations/versions/9ad747adbff1_.py +++ /dev/null @@ -1,59 +0,0 @@ -"""empty message - -Revision ID: 9ad747adbff1 -Revises: 09414b495bb5 -Create Date: 2017-01-25 18:37:58.718000 - -""" - -# revision identifiers, used by Alembic. -revision = '9ad747adbff1' -down_revision = '09414b495bb5' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_table('eveapiscope', - sa.Column('scopeID', sa.Integer(), nullable=False), - sa.Column('scopeName', sa.String(length=100), nullable=True), - sa.PrimaryKeyConstraint('scopeID') - ) - op.create_index(op.f('ix_eveapiscope_scopeName'), 'eveapiscope', ['scopeName'], unique=False) - op.create_table('ssotoken', - sa.Column('accountID', sa.Integer(), nullable=False), - sa.Column('refresh_token', sa.String(length=128), nullable=True), - sa.Column('access_token', sa.String(length=128), nullable=True), - sa.Column('access_token_expires', sa.DateTime(), nullable=True), - sa.ForeignKeyConstraint(['accountID'], ['accounts.id'], ), - sa.PrimaryKeyConstraint('accountID') - ) - op.create_table('tokenscope', - sa.Column('tokenID', sa.Integer(), nullable=False), - sa.Column('scopeID', sa.Integer(), nullable=False), - sa.ForeignKeyConstraint(['scopeID'], ['eveapiscope.scopeID'], ), - sa.ForeignKeyConstraint(['tokenID'], ['ssotoken.accountID'], ), - sa.PrimaryKeyConstraint('tokenID', 'scopeID') - ) - #op.create_index(op.f('ix_account_notes_time'), 'account_notes', ['time'], unique=False) - op.drop_index('ix_role_history_time', table_name='account_notes') - op.drop_column(u'accounts', 'access_token') - op.drop_column(u'accounts', 'access_token_expires') - op.drop_column(u'accounts', 'refresh_token') - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.add_column(u'accounts', sa.Column('refresh_token', mysql.VARCHAR(length=128), nullable=True)) - op.add_column(u'accounts', sa.Column('access_token_expires', mysql.DATETIME(), nullable=True)) - op.add_column(u'accounts', sa.Column('access_token', mysql.VARCHAR(length=128), nullable=True)) - op.create_index('ix_role_history_time', 'account_notes', ['time'], unique=False) - op.drop_index(op.f('ix_account_notes_time'), table_name='account_notes') - op.drop_table('tokenscope') - op.drop_table('ssotoken') - op.drop_index(op.f('ix_eveapiscope_scopeName'), table_name='eveapiscope') - op.drop_table('eveapiscope') - ### end Alembic commands ### diff --git a/migrations/versions/9c3d75ef22cb_.py b/migrations/versions/9c3d75ef22cb_.py deleted file mode 100644 index e30f3c7d..00000000 --- a/migrations/versions/9c3d75ef22cb_.py +++ /dev/null @@ -1,34 +0,0 @@ -"""empty message - -Revision ID: 9c3d75ef22cb -Revises: d90da500c84c -Create Date: 2016-04-14 20:07:05.478000 - -""" - -# revision identifiers, used by Alembic. -revision = '9c3d75ef22cb' -down_revision = 'd90da500c84c' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.alter_column('waitlists', 'name', - existing_type=mysql.VARCHAR(length=20), - type_=sa.String(length=50), - existing_nullable=True) - op.drop_index('name', table_name='waitlists') - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_index('name', 'waitlists', ['name'], unique=True) - op.alter_column('waitlists', 'name', - existing_type=sa.String(length=50), - type_=mysql.VARCHAR(length=20), - existing_nullable=True) - ### end Alembic commands ### diff --git a/migrations/versions/a92a35286d58_.py b/migrations/versions/a92a35286d58_.py deleted file mode 100644 index 82a991f3..00000000 --- a/migrations/versions/a92a35286d58_.py +++ /dev/null @@ -1,50 +0,0 @@ -"""empty message - -Revision ID: a92a35286d58 -Revises: 9c3d75ef22cb -Create Date: 2016-04-14 20:48:59.408000 - -""" - -# revision identifiers, used by Alembic. -revision = 'a92a35286d58' -down_revision = '9c3d75ef22cb' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.add_column('waitlist_groups', sa.Column('constellationID', sa.Integer(), nullable=True)) - op.add_column('waitlist_groups', sa.Column('dockupID', sa.Integer(), nullable=True)) - op.add_column('waitlist_groups', sa.Column('enabled', sa.Boolean(), nullable=False)) - op.add_column('waitlist_groups', sa.Column('fcID', sa.Integer(), nullable=True)) - op.add_column('waitlist_groups', sa.Column('managerID', sa.Integer(), nullable=True)) - op.add_column('waitlist_groups', sa.Column('odering', sa.Integer(), nullable=False)) - op.add_column('waitlist_groups', sa.Column('status', sa.String(length=1000), nullable=True)) - op.add_column('waitlist_groups', sa.Column('systemID', sa.Integer(), nullable=True)) - op.create_foreign_key(None, 'waitlist_groups', 'constellation', ['constellationID'], ['constellationID']) - op.create_foreign_key(None, 'waitlist_groups', 'solarsystem', ['systemID'], ['solarSystemID']) - op.create_foreign_key(None, 'waitlist_groups', 'accounts', ['managerID'], ['id']) - op.create_foreign_key(None, 'waitlist_groups', 'characters', ['fcID'], ['id']) - op.create_foreign_key(None, 'waitlist_groups', 'station', ['dockupID'], ['stationID']) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint(None, 'waitlist_groups', type_='foreignkey') - op.drop_constraint(None, 'waitlist_groups', type_='foreignkey') - op.drop_constraint(None, 'waitlist_groups', type_='foreignkey') - op.drop_constraint(None, 'waitlist_groups', type_='foreignkey') - op.drop_constraint(None, 'waitlist_groups', type_='foreignkey') - op.drop_column('waitlist_groups', 'systemID') - op.drop_column('waitlist_groups', 'status') - op.drop_column('waitlist_groups', 'odering') - op.drop_column('waitlist_groups', 'managerID') - op.drop_column('waitlist_groups', 'fcID') - op.drop_column('waitlist_groups', 'enabled') - op.drop_column('waitlist_groups', 'dockupID') - op.drop_column('waitlist_groups', 'constellationID') - ### end Alembic commands ### diff --git a/migrations/versions/aacfc1555e57_.py b/migrations/versions/aacfc1555e57_.py deleted file mode 100644 index cb476997..00000000 --- a/migrations/versions/aacfc1555e57_.py +++ /dev/null @@ -1,26 +0,0 @@ -"""empty message - -Revision ID: aacfc1555e57 -Revises: eb4f64b6a201 -Create Date: 2016-09-22 00:07:10.318000 - -""" - -# revision identifiers, used by Alembic. -revision = 'aacfc1555e57' -down_revision = 'eb4f64b6a201' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.add_column('ts_dati', sa.Column('safetyChannelID', sa.Integer(), nullable=True)) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_column('ts_dati', 'safetyChannelID') - ### end Alembic commands ### diff --git a/migrations/versions/b0ade35cf837_.py b/migrations/versions/b0ade35cf837_.py deleted file mode 100644 index 0896c77e..00000000 --- a/migrations/versions/b0ade35cf837_.py +++ /dev/null @@ -1,36 +0,0 @@ -"""empty message - -Revision ID: b0ade35cf837 -Revises: e52f17b1d758 -Create Date: 2016-03-11 21:21:04.397000 - -""" - -# revision identifiers, used by Alembic. -revision = 'b0ade35cf837' -down_revision = 'e52f17b1d758' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_table('incursion_layout', - sa.Column('constellation', sa.Integer(), nullable=False), - sa.Column('staging', sa.Integer(), nullable=True), - sa.Column('headquarter', sa.Integer(), nullable=True), - sa.Column('dockup', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['constellation'], ['constellation.constellationID'], ), - sa.ForeignKeyConstraint(['dockup'], ['station.stationID'], ), - sa.ForeignKeyConstraint(['headquarter'], ['solarsystem.solarSystemID'], ), - sa.ForeignKeyConstraint(['staging'], ['solarsystem.solarSystemID'], ), - sa.PrimaryKeyConstraint('constellation') - ) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_table('incursion_layout') - ### end Alembic commands ### diff --git a/migrations/versions/b4a6bbfeef64_.py b/migrations/versions/b4a6bbfeef64_.py deleted file mode 100644 index 5004f31d..00000000 --- a/migrations/versions/b4a6bbfeef64_.py +++ /dev/null @@ -1,26 +0,0 @@ -"""empty message - -Revision ID: b4a6bbfeef64 -Revises: a92a35286d58 -Create Date: 2016-04-16 13:16:15.240000 - -""" - -# revision identifiers, used by Alembic. -revision = 'b4a6bbfeef64' -down_revision = 'a92a35286d58' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.add_column('waitlists', sa.Column('displayTitle', sa.String(length=100), nullable=False)) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_column('waitlists', 'displayTitle') - ### end Alembic commands ### diff --git a/migrations/versions/ba6e4bc83cc1_.py b/migrations/versions/ba6e4bc83cc1_.py deleted file mode 100644 index c6734f1f..00000000 --- a/migrations/versions/ba6e4bc83cc1_.py +++ /dev/null @@ -1,35 +0,0 @@ -"""empty message - -Revision ID: ba6e4bc83cc1 -Revises: 2e56087b8ba7 -Create Date: 2016-03-06 11:13:27.860000 - -""" - -# revision identifiers, used by Alembic. -revision = 'ba6e4bc83cc1' -down_revision = '2e56087b8ba7' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_table('feedback', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('user', sa.Integer(), nullable=True), - sa.Column('likes', sa.Boolean(), nullable=True), - sa.Column('comment', mysql.TEXT(), nullable=True), - sa.ForeignKeyConstraint(['user'], ['characters.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_feedback_user'), 'feedback', ['user'], unique=True) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_index(op.f('ix_feedback_user'), table_name='feedback') - op.drop_table('feedback') - ### end Alembic commands ### diff --git a/migrations/versions/bae9e3c7f432_.py b/migrations/versions/bae9e3c7f432_.py deleted file mode 100644 index d7c5553a..00000000 --- a/migrations/versions/bae9e3c7f432_.py +++ /dev/null @@ -1,35 +0,0 @@ -"""empty message - -Revision ID: bae9e3c7f432 -Revises: fc929c12e829 -Create Date: 2016-03-22 23:20:44.208000 - -""" - -# revision identifiers, used by Alembic. -revision = 'bae9e3c7f432' -down_revision = 'fc929c12e829' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_table('invmarketgroups', - sa.Column('marketGroupID', sa.Integer(), nullable=False), - sa.Column('parentGroupID', sa.Integer(), nullable=True), - sa.Column('marketGroupName', sa.String(length=100), nullable=True), - sa.Column('description', sa.String(length=3000), nullable=True), - sa.Column('iconID', sa.Integer(), nullable=True), - sa.Column('hasTypes', sa.Boolean(), nullable=True), - sa.ForeignKeyConstraint(['parentGroupID'], ['invmarketgroups.marketGroupID'], ), - sa.PrimaryKeyConstraint('marketGroupID') - ) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_table('invmarketgroups') - ### end Alembic commands ### diff --git a/migrations/versions/c44e71e3e1b6_.py b/migrations/versions/c44e71e3e1b6_.py deleted file mode 100644 index 04d41fbb..00000000 --- a/migrations/versions/c44e71e3e1b6_.py +++ /dev/null @@ -1,74 +0,0 @@ -"""empty message - -Revision ID: c44e71e3e1b6 -Revises: 36abd98c57e5 -Create Date: 2017-02-17 15:43:56.453660 - -""" - -# revision identifiers, used by Alembic. -revision = 'c44e71e3e1b6' -down_revision = '36abd98c57e5' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('trivia', - sa.Column('triviaID', sa.Integer(), nullable=False), - sa.Column('createdByID', sa.Integer(), nullable=True), - sa.Column('description', sa.String(length=5000), nullable=True), - sa.Column('fromTime', sa.DateTime(), nullable=True), - sa.Column('toTime', sa.DateTime(), nullable=True), - sa.CheckConstraint('toTime > fromTime'), - sa.ForeignKeyConstraint(['createdByID'], ['accounts.id'], ), - sa.PrimaryKeyConstraint('triviaID') - ) - op.create_table('trivia_question', - sa.Column('questionID', sa.Integer(), nullable=False), - sa.Column('triviaID', sa.Integer(), nullable=False), - sa.Column('questionText', sa.String(length=1000), nullable=True), - sa.Column('answerType', sa.String(length=255), nullable=True), - sa.Column('answerConnection', sa.Enum('AND', 'OR', 'NOT', 'NONE'), nullable=True), - sa.Column('inputPlaceholder', sa.String(length=255), nullable=True), - sa.ForeignKeyConstraint(['triviaID'], ['trivia.triviaID'], ), - sa.PrimaryKeyConstraint('questionID', 'triviaID') - ) - op.create_table('trivia_answer', - sa.Column('answerID', sa.Integer(), nullable=False), - sa.Column('questionID', sa.Integer(), nullable=False), - sa.Column('answerText', sa.String(length=1000), nullable=True), - sa.ForeignKeyConstraint(['questionID'], ['trivia_question.questionID'], ), - sa.PrimaryKeyConstraint('answerID', 'questionID') - ) - op.create_table('trivia_submission', - sa.Column('submissionID', sa.Integer(), nullable=False), - sa.Column('triviaID', sa.Integer(), nullable=True), - sa.Column('submittorID', sa.Integer(), nullable=True), - sa.Column('submittorAccountID', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['submittorAccountID'], ['accounts.id'], ), - sa.ForeignKeyConstraint(['submittorID'], ['characters.id'], ), - sa.ForeignKeyConstraint(['triviaID'], ['trivia.triviaID'], ), - sa.PrimaryKeyConstraint('submissionID') - ) - op.create_table('trivia_submission_answer', - sa.Column('submissionID', sa.Integer(), nullable=False), - sa.Column('questionID', sa.Integer(), nullable=False), - sa.Column('answerText', sa.String(length=5000), nullable=True), - sa.ForeignKeyConstraint(['questionID'], ['trivia_question.questionID'], ), - sa.ForeignKeyConstraint(['submissionID'], ['trivia_submission.submissionID'], ), - sa.PrimaryKeyConstraint('submissionID', 'questionID') - ) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_table('trivia_submission_answer') - op.drop_table('trivia_submission') - op.drop_table('trivia_question') - op.drop_table('trivia_answer') - op.drop_table('trivia') - # ### end Alembic commands ### diff --git a/migrations/versions/cf588e0dfd5c_.py b/migrations/versions/cf588e0dfd5c_.py deleted file mode 100644 index 1555789a..00000000 --- a/migrations/versions/cf588e0dfd5c_.py +++ /dev/null @@ -1,26 +0,0 @@ -"""empty message - -Revision ID: cf588e0dfd5c -Revises: 95eb3cae9e68 -Create Date: 2016-12-30 21:46:10.941000 - -""" - -# revision identifiers, used by Alembic. -revision = 'cf588e0dfd5c' -down_revision = '95eb3cae9e68' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.add_column('roles', sa.Column('displayName', sa.String(length=150), nullable=True)) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_column('roles', 'displayName') - ### end Alembic commands ### diff --git a/migrations/versions/d40cb6e101dc_.py b/migrations/versions/d40cb6e101dc_.py deleted file mode 100644 index abdec92d..00000000 --- a/migrations/versions/d40cb6e101dc_.py +++ /dev/null @@ -1,28 +0,0 @@ -"""empty message - -Revision ID: d40cb6e101dc -Revises: ea41446517f3 -Create Date: 2016-03-29 20:43:23.952000 - -""" - -# revision identifiers, used by Alembic. -revision = 'd40cb6e101dc' -down_revision = 'ea41446517f3' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.add_column('characters', sa.Column('cbs_level', sa.SmallInteger(), nullable=False)) - op.add_column('characters', sa.Column('lc_level', sa.SmallInteger(), nullable=False)) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_column('characters', 'lc_level') - op.drop_column('characters', 'cbs_level') - ### end Alembic commands ### diff --git a/migrations/versions/d464aa706238_.py b/migrations/versions/d464aa706238_.py deleted file mode 100644 index e03b9a2b..00000000 --- a/migrations/versions/d464aa706238_.py +++ /dev/null @@ -1,34 +0,0 @@ -"""empty message - -Revision ID: d464aa706238 -Revises: 052e5edbdf5d -Create Date: 2017-01-26 18:46:36.473000 - -""" - -# revision identifiers, used by Alembic. -revision = 'd464aa706238' -down_revision = '052e5edbdf5d' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_index(op.f('ix_account_notes_time'), 'account_notes', ['time'], unique=False) - op.drop_index('email', table_name='accounts') - op.drop_column('accounts', 'password') - op.drop_column('accounts', 'email') - op.add_column('apicache_characterinfo', sa.Column('characterName', sa.String(length=100), nullable=True)) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_column('apicache_characterinfo', 'characterName') - op.add_column('accounts', sa.Column('email', mysql.VARCHAR(length=100), nullable=True)) - op.add_column('accounts', sa.Column('password', mysql.VARCHAR(length=100), nullable=True)) - op.create_index('email', 'accounts', ['email'], unique=True) - op.drop_index(op.f('ix_account_notes_time'), table_name='account_notes') - ### end Alembic commands ### diff --git a/migrations/versions/d58d1159149e_.py b/migrations/versions/d58d1159149e_.py deleted file mode 100644 index d3df3a31..00000000 --- a/migrations/versions/d58d1159149e_.py +++ /dev/null @@ -1,28 +0,0 @@ -"""empty message - -Revision ID: d58d1159149e -Revises: ba6e4bc83cc1 -Create Date: 2016-03-06 11:35:16.153000 - -""" - -# revision identifiers, used by Alembic. -revision = 'd58d1159149e' -down_revision = 'ba6e4bc83cc1' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.add_column('feedback', sa.Column('last_changed', sa.DateTime(), nullable=True)) - op.create_index(op.f('ix_feedback_last_changed'), 'feedback', ['last_changed'], unique=False) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_index(op.f('ix_feedback_last_changed'), table_name='feedback') - op.drop_column('feedback', 'last_changed') - ### end Alembic commands ### diff --git a/migrations/versions/d90da500c84c_.py b/migrations/versions/d90da500c84c_.py deleted file mode 100644 index a462213b..00000000 --- a/migrations/versions/d90da500c84c_.py +++ /dev/null @@ -1,26 +0,0 @@ -"""empty message - -Revision ID: d90da500c84c -Revises: 565cb2af7fa3 -Create Date: 2016-04-14 14:01:43.678000 - -""" - -# revision identifiers, used by Alembic. -revision = 'd90da500c84c' -down_revision = '565cb2af7fa3' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.add_column('fittings', sa.Column('created', sa.DateTime(), nullable=True)) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_column('fittings', 'created') - ### end Alembic commands ### diff --git a/migrations/versions/db3c76f99dea_.py b/migrations/versions/db3c76f99dea_.py deleted file mode 100644 index 008240c3..00000000 --- a/migrations/versions/db3c76f99dea_.py +++ /dev/null @@ -1,45 +0,0 @@ -"""empty message - -Revision ID: db3c76f99dea -Revises: 61cdca7328a6 -Create Date: 2016-05-11 11:47:20.859000 - -""" - -# revision identifiers, used by Alembic. -revision = 'db3c76f99dea' -down_revision = '61cdca7328a6' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_table('settings', - sa.Column('key', sa.String(length=20), nullable=False), - sa.Column('value', sa.TEXT(), nullable=True), - sa.PrimaryKeyConstraint('key') - ) - op.create_table('ts_dati', - sa.Column('teamspeakID', sa.Integer(), nullable=False), - sa.Column('displayName', sa.String(length=128), nullable=True), - sa.Column('host', sa.String(length=128), nullable=True), - sa.Column('port', sa.Integer(), nullable=True), - sa.Column('displayHost', sa.String(length=128), nullable=True), - sa.Column('displayPort', sa.Integer(), nullable=True), - sa.Column('queryName', sa.String(length=128), nullable=True), - sa.Column('queryPassword', sa.String(length=128), nullable=True), - sa.Column('serverID', sa.Integer(), nullable=True), - sa.Column('channelID', sa.Integer(), nullable=True), - sa.Column('clientName', sa.String(length=20), nullable=True), - sa.PrimaryKeyConstraint('teamspeakID') - ) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_table('ts_dati') - op.drop_table('settings') - ### end Alembic commands ### diff --git a/migrations/versions/dee6801e4a87_.py b/migrations/versions/dee6801e4a87_.py deleted file mode 100644 index ed64a340..00000000 --- a/migrations/versions/dee6801e4a87_.py +++ /dev/null @@ -1,39 +0,0 @@ -"""empty message - -Revision ID: dee6801e4a87 -Revises: 0c6c4b5461ce -Create Date: 2016-05-05 22:10:23.689000 - -""" - -# revision identifiers, used by Alembic. -revision = 'dee6801e4a87' -down_revision = '0c6c4b5461ce' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_table('send_invite') - op.add_column('waitlist_entries', sa.Column('inviteCount', sa.Integer(), nullable=True)) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_column('waitlist_entries', 'inviteCount') - op.create_table('send_invite', - sa.Column('sendInviteID', mysql.INTEGER(display_width=11), nullable=False), - sa.Column('characterID', mysql.INTEGER(display_width=11), autoincrement=False, nullable=True), - sa.Column('fleetID', mysql.BIGINT(display_width=20), autoincrement=False, nullable=True), - sa.Column('inviteCount', mysql.INTEGER(display_width=11), autoincrement=False, nullable=True), - sa.Column('sendAt', mysql.DATETIME(), nullable=True), - sa.ForeignKeyConstraint(['characterID'], [u'characters.id'], name=u'send_invite_ibfk_1'), - sa.ForeignKeyConstraint(['fleetID'], [u'crest_fleets.fleetID'], name=u'send_invite_ibfk_2'), - sa.PrimaryKeyConstraint('sendInviteID'), - mysql_default_charset=u'utf8mb4', - mysql_engine=u'InnoDB' - ) - ### end Alembic commands ### diff --git a/migrations/versions/e52f17b1d758_.py b/migrations/versions/e52f17b1d758_.py deleted file mode 100644 index be3d1a55..00000000 --- a/migrations/versions/e52f17b1d758_.py +++ /dev/null @@ -1,32 +0,0 @@ -"""empty message - -Revision ID: e52f17b1d758 -Revises: 871a8dd84cf7 -Create Date: 2016-03-10 19:35:07.390000 - -""" - -# revision identifiers, used by Alembic. -revision = 'e52f17b1d758' -down_revision = '871a8dd84cf7' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_table('constellation', - sa.Column('constellationID', sa.Integer(), nullable=False), - sa.Column('constellationName', sa.String(length=100), nullable=True), - sa.PrimaryKeyConstraint('constellationID') - ) - op.create_index(op.f('ix_constellation_constellationName'), 'constellation', ['constellationName'], unique=True) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_index(op.f('ix_constellation_constellationName'), table_name='constellation') - op.drop_table('constellation') - ### end Alembic commands ### diff --git a/migrations/versions/e8143468c7c1_.py b/migrations/versions/e8143468c7c1_.py deleted file mode 100644 index 6a9c463a..00000000 --- a/migrations/versions/e8143468c7c1_.py +++ /dev/null @@ -1,37 +0,0 @@ -"""empty message - -Revision ID: e8143468c7c1 -Revises: 11ee20a79069 -Create Date: 2016-04-07 22:52:52.476000 - -""" - -# revision identifiers, used by Alembic. -revision = 'e8143468c7c1' -down_revision = '11ee20a79069' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_table('waitlist_entry_fits', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('entryID', sa.Integer(), nullable=True), - sa.Column('fitID', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['entryID'], ['waitlist_entries.id'], ), - sa.ForeignKeyConstraint(['fitID'], ['fittings.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.drop_constraint(u'fittings_ibfk_2', 'fittings', type_='foreignkey') - op.drop_column(u'fittings', 'waitlist_id') - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.add_column(u'fittings', sa.Column('waitlist_id', mysql.INTEGER(display_width=11), autoincrement=False, nullable=True)) - op.create_foreign_key(u'fittings_ibfk_2', 'fittings', 'waitlist_entries', ['waitlist_id'], ['id'], onupdate=u'CASCADE') - op.drop_table('waitlist_entry_fits') - ### end Alembic commands ### diff --git a/migrations/versions/ea41446517f3_.py b/migrations/versions/ea41446517f3_.py deleted file mode 100644 index 88971223..00000000 --- a/migrations/versions/ea41446517f3_.py +++ /dev/null @@ -1,40 +0,0 @@ -"""empty message - -Revision ID: ea41446517f3 -Revises: bae9e3c7f432 -Create Date: 2016-03-23 23:43:04.047000 - -""" - -# revision identifiers, used by Alembic. -revision = 'ea41446517f3' -down_revision = 'bae9e3c7f432' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_index('ix_apicache_characteraffiliation_name', table_name='apicache_characteraffiliation') - op.create_index(op.f('ix_apicache_characteraffiliation_name'), 'apicache_characteraffiliation', ['name'], unique=False) - op.drop_index('name', table_name='apicache_characterid') - op.drop_index('ix_apicache_corporationinfo_name', table_name='apicache_corporationinfo') - op.create_index(op.f('ix_apicache_corporationinfo_name'), 'apicache_corporationinfo', ['name'], unique=False) - op.drop_index('ix_ban_name', table_name='ban') - op.create_index(op.f('ix_ban_name'), 'ban', ['name'], unique=False) - op.drop_index('eve_name', table_name='characters') - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_index('eve_name', 'characters', ['eve_name'], unique=True) - op.drop_index(op.f('ix_ban_name'), table_name='ban') - op.create_index('ix_ban_name', 'ban', ['name'], unique=True) - op.drop_index(op.f('ix_apicache_corporationinfo_name'), table_name='apicache_corporationinfo') - op.create_index('ix_apicache_corporationinfo_name', 'apicache_corporationinfo', ['name'], unique=True) - op.create_index('name', 'apicache_characterid', ['name'], unique=True) - op.drop_index(op.f('ix_apicache_characteraffiliation_name'), table_name='apicache_characteraffiliation') - op.create_index('ix_apicache_characteraffiliation_name', 'apicache_characteraffiliation', ['name'], unique=True) - ### end Alembic commands ### diff --git a/migrations/versions/eb4f64b6a201_.py b/migrations/versions/eb4f64b6a201_.py deleted file mode 100644 index abbf59f1..00000000 --- a/migrations/versions/eb4f64b6a201_.py +++ /dev/null @@ -1,41 +0,0 @@ -"""empty message - -Revision ID: eb4f64b6a201 -Revises: f6ebd146d0dd -Create Date: 2016-09-21 18:20:53.273000 - -""" - -# revision identifiers, used by Alembic. -revision = 'eb4f64b6a201' -down_revision = 'f6ebd146d0dd' - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_table('tickets', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('title', sa.String(length=50), nullable=True), - sa.Column('time', sa.DateTime(), nullable=False), - sa.Column('characterID', sa.Integer(), nullable=True), - sa.Column('message', mysql.TEXT(), nullable=True), - sa.Column('state', sa.String(length=20), nullable=False), - sa.ForeignKeyConstraint(['characterID'], ['characters.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_tickets_characterID'), 'tickets', ['characterID'], unique=False) - op.create_index(op.f('ix_tickets_state'), 'tickets', ['state'], unique=False) - op.create_index(op.f('ix_tickets_time'), 'tickets', ['time'], unique=False) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_index(op.f('ix_tickets_time'), table_name='tickets') - op.drop_index(op.f('ix_tickets_state'), table_name='tickets') - op.drop_index(op.f('ix_tickets_characterID'), table_name='tickets') - op.drop_table('tickets') - ### end Alembic commands ### diff --git a/migrations/versions/f3b1988db9b9_.py b/migrations/versions/f3b1988db9b9_.py deleted file mode 100644 index bdcc921a..00000000 --- a/migrations/versions/f3b1988db9b9_.py +++ /dev/null @@ -1,32 +0,0 @@ -"""empty message - -Revision ID: f3b1988db9b9 -Revises: e8143468c7c1 -Create Date: 2016-04-07 22:58:01.752000 - -""" - -# revision identifiers, used by Alembic. -revision = 'f3b1988db9b9' -down_revision = 'e8143468c7c1' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint(u'waitlist_entry_fits_ibfk_1', 'waitlist_entry_fits', type_='foreignkey') - op.drop_constraint(u'waitlist_entry_fits_ibfk_2', 'waitlist_entry_fits', type_='foreignkey') - op.create_foreign_key(None, 'waitlist_entry_fits', 'waitlist_entries', ['entryID'], ['id'], onupdate='CASCADE', ondelete='CASCADE') - op.create_foreign_key(None, 'waitlist_entry_fits', 'fittings', ['fitID'], ['id'], onupdate='CASCADE', ondelete='CASCADE') - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint(None, 'waitlist_entry_fits', type_='foreignkey') - op.drop_constraint(None, 'waitlist_entry_fits', type_='foreignkey') - op.create_foreign_key(u'waitlist_entry_fits_ibfk_2', 'waitlist_entry_fits', 'fittings', ['fitID'], ['id']) - op.create_foreign_key(u'waitlist_entry_fits_ibfk_1', 'waitlist_entry_fits', 'waitlist_entries', ['entryID'], ['id']) - ### end Alembic commands ### diff --git a/migrations/versions/f549a192f3e5_.py b/migrations/versions/f549a192f3e5_.py deleted file mode 100644 index df616254..00000000 --- a/migrations/versions/f549a192f3e5_.py +++ /dev/null @@ -1,33 +0,0 @@ -"""empty message - -Revision ID: f549a192f3e5 -Revises: ffdd6dd99166 -Create Date: 2016-04-12 15:23:01.982000 - -""" - -# revision identifiers, used by Alembic. -revision = 'f549a192f3e5' -down_revision = 'ffdd6dd99166' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.create_table('comp_history_ext_inv', - sa.Column('inviteExtID', sa.Integer(), nullable=False), - sa.Column('waitlistID', sa.Integer(), nullable=True), - sa.Column('timeCreated', sa.DateTime(), nullable=True), - sa.Column('timeInvited', sa.DateTime(), nullable=True), - sa.ForeignKeyConstraint(['waitlistID'], [u'waitlists.id'], ), - sa.PrimaryKeyConstraint('inviteExtID') - ) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_table('comp_history_ext_inv') - ### end Alembic commands ### diff --git a/migrations/versions/f6ebd146d0dd_.py b/migrations/versions/f6ebd146d0dd_.py deleted file mode 100644 index 80556d00..00000000 --- a/migrations/versions/f6ebd146d0dd_.py +++ /dev/null @@ -1,30 +0,0 @@ -"""empty message - -Revision ID: f6ebd146d0dd -Revises: 8113af5e2643 -Create Date: 2016-05-18 11:27:55.490215 - -""" - -# revision identifiers, used by Alembic. -revision = 'f6ebd146d0dd' -down_revision = '8113af5e2643' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.add_column('accounts', sa.Column('access_token', sa.String(length=128), nullable=True)) - op.add_column('accounts', sa.Column('access_token_expires', sa.DateTime(), nullable=True)) - op.add_column('accounts', sa.Column('refresh_token', sa.String(length=128), nullable=True)) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_column('accounts', 'refresh_token') - op.drop_column('accounts', 'access_token_expires') - op.drop_column('accounts', 'access_token') - ### end Alembic commands ### diff --git a/migrations/versions/fc929c12e829_.py b/migrations/versions/fc929c12e829_.py deleted file mode 100644 index 9e73b9ee..00000000 --- a/migrations/versions/fc929c12e829_.py +++ /dev/null @@ -1,28 +0,0 @@ -"""empty message - -Revision ID: fc929c12e829 -Revises: b0ade35cf837 -Create Date: 2016-03-17 15:49:13.442000 - -""" - -# revision identifiers, used by Alembic. -revision = 'fc929c12e829' -down_revision = 'b0ade35cf837' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.add_column('ban', sa.Column('admin', sa.Integer(), nullable=True)) - op.create_foreign_key(None, 'ban', 'characters', ['admin'], ['id']) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint(None, 'ban', type_='foreignkey') - op.drop_column('ban', 'admin') - ### end Alembic commands ### diff --git a/migrations/versions/ffdd6dd99166_.py b/migrations/versions/ffdd6dd99166_.py deleted file mode 100644 index 2ce307ca..00000000 --- a/migrations/versions/ffdd6dd99166_.py +++ /dev/null @@ -1,26 +0,0 @@ -"""empty message - -Revision ID: ffdd6dd99166 -Revises: 66503b938c08 -Create Date: 2016-04-11 17:44:22.238000 - -""" - -# revision identifiers, used by Alembic. -revision = 'ffdd6dd99166' -down_revision = '66503b938c08' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.add_column('comp_history', sa.Column('exref', sa.Integer(), nullable=True)) - ### end Alembic commands ### - - -def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - op.drop_column('comp_history', 'exref') - ### end Alembic commands ### diff --git a/requirements.txt b/requirements.txt index 0c577f1b..28412f8d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,7 +9,7 @@ blinker>=1.4 gevent>=1.1.2 requests>=2.11.1 pyswagger>=0.8.36 -esipy>=0.1.1 +esipy==0.3.0 Flask-Assets>=0.12 Flask-htmlmin>=1.2 cssmin>=0.2.0 @@ -22,3 +22,4 @@ Flask-CDN>=1.5.2 flask-limiter>=0.9.3 ts3>=1.0.5 PyYAML>=3.12 +Flask-Script>=2.0.6 \ No newline at end of file diff --git a/resources/swagger.json b/resources/swagger.json index 297df366..606866ee 100644 --- a/resources/swagger.json +++ b/resources/swagger.json @@ -1 +1 @@ -{"definitions":{"forbidden":{"description":"Forbidden model","properties":{"error":{"description":"Forbidden message","type":"string"},"sso_status":{"description":"Status code received from SSO","type":"integer"}},"required":["error"],"title":"Forbidden","type":"object"},"internal_server_error":{"description":"Internal server error model","properties":{"error":{"description":"Internal server error message","type":"string"}},"required":["error"],"title":"Internal server error","type":"object"}},"host":"esi.tech.ccp.is","info":{"description":"An OpenAPI for EVE Online","title":"EVE Swagger Interface","version":"0.6.2"},"parameters":{"X-User-Agent":{"description":"Client identifier, takes precedence over User-Agent","in":"header","name":"X-User-Agent","type":"string"},"alliance_id":{"description":"An EVE alliance ID","format":"int32","in":"path","name":"alliance_id","required":true,"type":"integer"},"character_id":{"description":"An EVE character ID","format":"int32","in":"path","name":"character_id","required":true,"type":"integer"},"corporation_id":{"description":"An EVE corporation ID","format":"int32","in":"path","name":"corporation_id","required":true,"type":"integer"},"datasource":{"default":"tranquility","description":"The server name you would like data from","enum":["tranquility","singularity"],"in":"query","name":"datasource","type":"string"},"language":{"default":"en-us","description":"Language to use in the response","enum":["de","en-us","fr","ja","ru","zh"],"in":"query","name":"language","type":"string"},"page":{"default":1,"description":"Which page of results to return","format":"int32","in":"query","name":"page","type":"integer"},"token":{"description":"Access token to use if unable to set a header","in":"query","name":"token","type":"string"},"user_agent":{"description":"Client identifier, takes precedence over headers","in":"query","name":"user_agent","type":"string"}},"paths":{"/v1/alliances/":{"get":{"description":"List all active player alliances\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_alliances","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of Alliance IDs","examples":{"application/json":[99000001,99000002]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok integer","format":"int32","minimum":0,"title":"get_alliances_200_ok","type":"integer","uniqueItems":true},"maxItems":5000,"title":"get_alliances_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"List all alliances","tags":["Alliance"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/alliances/names/":{"get":{"description":"Resolve a set of alliance IDs to alliance names\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_alliances_names","parameters":[{"description":"A comma separated list of alliance IDs","in":"query","items":{"format":"int64","type":"integer"},"maxItems":100,"minItems":1,"name":"alliance_ids","required":true,"type":"array"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of id/name associations","examples":{"application/json":[{"alliance_id":1000171,"alliance_name":"Republic University"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"alliance_id":{"description":"alliance_id integer","format":"int32","title":"get_alliances_names_alliance_id","type":"integer"},"alliance_name":{"description":"alliance_name string","title":"get_alliances_names_alliance_name","type":"string"}},"required":["alliance_id","alliance_name"],"title":"get_alliances_names_200_ok","type":"object"},"maxItems":100,"title":"get_alliances_names_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get alliance names","tags":["Alliance"],"x-alternate-versions":["legacy","v1"],"x-cached-seconds":3600}},"/v1/alliances/{alliance_id}/corporations/":{"get":{"description":"List all current member corporations of an alliance\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_alliances_alliance_id_corporations","parameters":[{"$ref":"#/parameters/alliance_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of corporation IDs","examples":{"application/json":[98000001]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok integer","format":"int32","minimum":0,"title":"get_alliances_alliance_id_corporations_200_ok","type":"integer","uniqueItems":true},"maxItems":1000,"title":"get_alliances_alliance_id_corporations_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"List alliance's corporations","tags":["Alliance"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/alliances/{alliance_id}/icons/":{"get":{"description":"Get the icon urls for a alliance\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_alliances_alliance_id_icons","parameters":[{"$ref":"#/parameters/alliance_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Icon URLs for the given alliance id and server","examples":{"application/json":{"px128x128":"https://imageserver.eveonline.com/Alliance/503818424_128.png","px64x64":"https://imageserver.eveonline.com/Alliance/503818424_64.png"}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"px128x128":{"description":"px128x128 string","title":"get_alliances_alliance_id_icons_px128x128","type":"string"},"px64x64":{"description":"px64x64 string","title":"get_alliances_alliance_id_icons_px64x64","type":"string"}},"title":"get_alliances_alliance_id_icons_ok","type":"object"}},"404":{"description":"No image server for this datasource","examples":{"application/json":{"error":"No image server for this datasource"}},"schema":{"description":"No image server for this datasource","properties":{"error":{"description":"error message","title":"get_alliances_alliance_id_icons_error","type":"string"}},"title":"get_alliances_alliance_id_icons_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get alliance icon","tags":["Alliance"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/characters/affiliation/":{"post":{"description":"Bulk lookup of character IDs to corporation, alliance and faction\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"post_characters_affiliation","parameters":[{"description":"The character IDs to fetch affiliations for. All characters must exist, or none will be returned.","in":"body","name":"characters","required":true,"schema":{"description":"characters array","items":{"description":"character integer","format":"int32","title":"post_characters_affiliation_character","type":"integer"},"maxItems":1000,"minItems":1,"title":"post_characters_affiliation_characters","type":"array","uniqueItems":true}},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Character corporation, alliance and faction IDs","examples":{"application/json":[{"alliance_id":434243723,"character_id":95538921,"corporation_id":109299958}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"alliance_id":{"description":"The character's alliance ID, if their corporation is in an alliance","format":"int32","title":"post_characters_affiliation_alliance_id","type":"integer"},"character_id":{"description":"The character's ID","format":"int32","title":"post_characters_affiliation_character_id","type":"integer"},"corporation_id":{"description":"The character's corporation ID","format":"int32","title":"post_characters_affiliation_corporation_id","type":"integer"},"faction_id":{"description":"The character's faction ID, if their corporation is in a faction","format":"int32","title":"post_characters_affiliation_faction_id","type":"integer"}},"required":["character_id","corporation_id"],"title":"post_characters_affiliation_200_ok","type":"object"},"maxItems":1000,"title":"post_characters_affiliation_ok","type":"array"}},"404":{"description":"No characters found!","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"post_characters_affiliation_404_not_found","type":"string"}},"title":"post_characters_affiliation_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Character affiliation","tags":["Character"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/characters/names/":{"get":{"description":"Resolve a set of character IDs to character names\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_characters_names","parameters":[{"description":"A comma separated list of character IDs","in":"query","items":{"format":"int64","type":"integer"},"maxItems":1000,"minItems":1,"name":"character_ids","required":true,"type":"array"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of id/name associations","examples":{"application/json":[{"character_id":95465499,"character_name":"CCP Bartender"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"character_id":{"description":"character_id integer","format":"int64","title":"get_characters_names_character_id","type":"integer"},"character_name":{"description":"character_name string","title":"get_characters_names_character_name","type":"string"}},"required":["character_id","character_name"],"title":"get_characters_names_200_ok","type":"object"},"maxItems":1000,"title":"get_characters_names_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get character names","tags":["Character"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/characters/{character_id}/agents_research/":{"get":{"description":"Return a list of agents research information for a character. The formula for finding the current research points with an agent is: currentPoints = remainderPoints + pointsPerDay * days(currentTime - researchStartDate)\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_characters_character_id_agents_research","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of agents research information","examples":{"application/json":[{"agent_id":3009358,"points_per_day":53.5346162146776,"remainder_points":53604.0634303189,"skill_type_id":11450,"started_at":"2017-03-23T14:47:00Z"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"agent_id":{"description":"agent_id integer","format":"int32","title":"get_characters_character_id_agents_research_agent_id","type":"integer"},"points_per_day":{"description":"points_per_day number","format":"float","title":"get_characters_character_id_agents_research_points_per_day","type":"number"},"remainder_points":{"description":"remainder_points number","format":"float","title":"get_characters_character_id_agents_research_remainder_points","type":"number"},"skill_type_id":{"description":"skill_type_id integer","format":"int32","title":"get_characters_character_id_agents_research_skill_type_id","type":"integer"},"started_at":{"description":"started_at string","format":"date-time","title":"get_characters_character_id_agents_research_started_at","type":"string"}},"required":["agent_id","skill_type_id","started_at","points_per_day","remainder_points"],"title":"get_characters_character_id_agents_research_200_ok","type":"object"},"maxItems":1000,"title":"get_characters_character_id_agents_research_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-characters.read_agents_research.v1"]}],"summary":"Get agents research","tags":["Character"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/characters/{character_id}/assets/":{"get":{"description":"Return a list of the characters assets\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_characters_character_id_assets","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A flat list of the users assets","examples":{"application/json":[{"is_singleton":true,"item_id":1000000016835,"location_flag":"Hangar","location_id":60002959,"location_type":"station","type_id":3516}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"X-Pages":{"default":1,"description":"Maximum page number","format":"int32","type":"integer"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"is_singleton":{"description":"is_singleton boolean","title":"get_characters_character_id_assets_is_singleton","type":"boolean"},"item_id":{"description":"item_id integer","format":"int64","title":"get_characters_character_id_assets_item_id","type":"integer"},"location_flag":{"description":"location_flag string","enum":["AssetSafety","AutoFit","Cargo","CorpseBay","Deliveries","DroneBay","FighterBay","FighterTube0","FighterTube1","FighterTube2","FighterTube3","FighterTube4","FleetHangar","Hangar","HangarAll","HiSlot0","HiSlot1","HiSlot2","HiSlot3","HiSlot4","HiSlot5","HiSlot6","HiSlot7","HiddenModifiers","Implant","LoSlot0","LoSlot1","LoSlot2","LoSlot3","LoSlot4","LoSlot5","LoSlot6","LoSlot7","Locked","MedSlot0","MedSlot1","MedSlot2","MedSlot3","MedSlot4","MedSlot5","MedSlot6","MedSlot7","Module","QuafeBay","RigSlot0","RigSlot1","RigSlot2","RigSlot3","RigSlot4","RigSlot5","RigSlot6","RigSlot7","ShipHangar","SpecializedAmmoHold","SpecializedCommandCenterHold","SpecializedFuelBay","SpecializedGasHold","SpecializedIndustrialShipHold","SpecializedLargeShipHold","SpecializedMaterialBay","SpecializedMediumShipHold","SpecializedMineralHold","SpecializedOreHold","SpecializedPlanetaryCommoditiesHold","SpecializedSalvageHold","SpecializedShipHold","SpecializedSmallShipHold","SubSystemBay","SubSystemSlot0","SubSystemSlot1","SubSystemSlot2","SubSystemSlot3","SubSystemSlot4","SubSystemSlot5","SubSystemSlot6","SubSystemSlot7","Unlocked","Wardrobe"],"title":"get_characters_character_id_assets_location_flag","type":"string"},"location_id":{"description":"location_id integer","format":"int64","title":"get_characters_character_id_assets_location_id","type":"integer"},"location_type":{"description":"location_type string","enum":["station","solar_system","other"],"title":"get_characters_character_id_assets_location_type","type":"string"},"quantity":{"description":"quantity integer","format":"int32","title":"get_characters_character_id_assets_quantity","type":"integer"},"type_id":{"description":"type_id integer","format":"int32","title":"get_characters_character_id_assets_type_id","type":"integer"}},"required":["type_id","location_id","location_type","item_id","location_flag","is_singleton"],"title":"get_characters_character_id_assets_200_ok","type":"object"},"maxItems":5000,"title":"get_characters_character_id_assets_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-assets.read_assets.v1"]}],"summary":"Get character assets","tags":["Assets"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/characters/{character_id}/assets/locations/":{"post":{"description":"Return locations for a set of item ids, which you can get from character assets endpoint. Coordinates for items in hangars or stations are set to (0,0,0)\n\n---\n","operationId":"post_characters_character_id_assets_locations","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"description":"A list of item ids","in":"body","name":"item_ids","required":true,"schema":{"description":"item_ids array","items":{"description":"item_id integer","format":"int64","title":"post_characters_character_id_assets_locations_item_id","type":"integer"},"maxItems":1000,"minItems":1,"title":"post_characters_character_id_assets_locations_item_ids","type":"array","uniqueItems":true}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of asset locations","examples":{"application/json":[{"item_id":12345,"x":1.2,"y":2.3,"z":-3.4}]},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"item_id":{"description":"item_id integer","format":"int64","title":"post_characters_character_id_assets_locations_item_id","type":"integer"},"x":{"description":"x number","format":"double","title":"post_characters_character_id_assets_locations_x","type":"number"},"y":{"description":"y number","format":"double","title":"post_characters_character_id_assets_locations_y","type":"number"},"z":{"description":"z number","format":"double","title":"post_characters_character_id_assets_locations_z","type":"number"}},"required":["item_id","x","y","z"],"title":"post_characters_character_id_assets_locations_200_ok","type":"object"},"maxItems":1000,"title":"post_characters_character_id_assets_locations_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-assets.read_assets.v1"]}],"summary":"Get character asset locations","tags":["Assets"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/assets/names/":{"post":{"description":"Return names for a set of item ids, which you can get from character assets endpoint. Typically used for items that can customize names, like containers or ships.\n\n---\n","operationId":"post_characters_character_id_assets_names","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"description":"A list of item ids","in":"body","name":"item_ids","required":true,"schema":{"description":"item_ids array","items":{"description":"item_id integer","format":"int64","title":"post_characters_character_id_assets_names_item_id","type":"integer"},"maxItems":1000,"minItems":1,"title":"post_characters_character_id_assets_names_item_ids","type":"array","uniqueItems":true}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of asset names","examples":{"application/json":[{"item_id":12345,"name":"Awesome Name"}]},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"item_id":{"description":"item_id integer","format":"int64","title":"post_characters_character_id_assets_names_item_id","type":"integer"},"name":{"description":"name string","title":"post_characters_character_id_assets_names_name","type":"string"}},"required":["item_id","name"],"title":"post_characters_character_id_assets_names_200_ok","type":"object"},"maxItems":1000,"title":"post_characters_character_id_assets_names_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-assets.read_assets.v1"]}],"summary":"Get character asset names","tags":["Assets"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/attributes/":{"get":{"description":"Return attributes of a character\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_characters_character_id_attributes","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Attributes of a character","examples":{"application/json":{"charisma":20,"intelligence":20,"memory":20,"perception":20,"willpower":20}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"accrued_remap_cooldown_date":{"description":"Neural remapping cooldown after a character uses remap accrued over time","format":"date-time","title":"get_characters_character_id_attributes_accrued_remap_cooldown_date","type":"string"},"bonus_remaps":{"description":"Number of available bonus character neural remaps","format":"int32","title":"get_characters_character_id_attributes_bonus_remaps","type":"integer"},"charisma":{"description":"charisma integer","format":"int32","title":"get_characters_character_id_attributes_charisma","type":"integer"},"intelligence":{"description":"intelligence integer","format":"int32","title":"get_characters_character_id_attributes_intelligence","type":"integer"},"last_remap_date":{"description":"Datetime of last neural remap, including usage of bonus remaps","format":"date-time","title":"get_characters_character_id_attributes_last_remap_date","type":"string"},"memory":{"description":"memory integer","format":"int32","title":"get_characters_character_id_attributes_memory","type":"integer"},"perception":{"description":"perception integer","format":"int32","title":"get_characters_character_id_attributes_perception","type":"integer"},"willpower":{"description":"willpower integer","format":"int32","title":"get_characters_character_id_attributes_willpower","type":"integer"}},"required":["charisma","intelligence","memory","perception","willpower"],"title":"get_characters_character_id_attributes_ok","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-skills.read_skills.v1"]}],"summary":"Get character attributes","tags":["Skills"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/characters/{character_id}/bookmarks/":{"get":{"description":"List your character's personal bookmarks\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_characters_character_id_bookmarks","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of bookmarks","examples":{"application/json":[{"bookmark_id":32,"create_date":"2016-08-09T11:57:47Z","creator_id":90000001,"folder_id":5,"memo":"aoeu ( Citadel )","note":"","owner_id":90000001,"target":{"item":{"item_id":1000000012668,"type_id":35832},"location_id":30000005}}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"bookmark_id":{"description":"bookmark_id integer","format":"int64","title":"get_characters_character_id_bookmarks_bookmark_id","type":"integer"},"create_date":{"description":"create_date string","format":"date-time","title":"get_characters_character_id_bookmarks_create_date","type":"string"},"creator_id":{"description":"creator_id integer","format":"int32","title":"get_characters_character_id_bookmarks_creator_id","type":"integer"},"folder_id":{"description":"folder_id integer","format":"int32","title":"get_characters_character_id_bookmarks_folder_id","type":"integer"},"memo":{"description":"memo string","title":"get_characters_character_id_bookmarks_memo","type":"string"},"note":{"description":"note string","title":"get_characters_character_id_bookmarks_note","type":"string"},"owner_id":{"description":"owner_id integer","format":"int32","title":"get_characters_character_id_bookmarks_owner_id","type":"integer"},"target":{"description":"target object","properties":{"coordinates":{"description":"coordinates object","properties":{"x":{"description":"x number","format":"double","title":"get_characters_character_id_bookmarks_x","type":"number"},"y":{"description":"y number","format":"double","title":"get_characters_character_id_bookmarks_y","type":"number"},"z":{"description":"z number","format":"double","title":"get_characters_character_id_bookmarks_z","type":"number"}},"required":["x","y","z"],"title":"get_characters_character_id_bookmarks_coordinates","type":"object"},"item":{"description":"item object","properties":{"item_id":{"description":"item_id integer","format":"int64","title":"get_characters_character_id_bookmarks_item_id","type":"integer"},"type_id":{"description":"type_id integer","format":"int32","title":"get_characters_character_id_bookmarks_type_id","type":"integer"}},"required":["item_id","type_id"],"title":"get_characters_character_id_bookmarks_item","type":"object"},"location_id":{"description":"location_id integer","format":"int64","title":"get_characters_character_id_bookmarks_location_id","type":"integer"}},"required":["location_id"],"title":"get_characters_character_id_bookmarks_target","type":"object"}},"required":["bookmark_id","creator_id","owner_id","create_date","memo","note","target"],"title":"get_characters_character_id_bookmarks_200_ok","type":"object"},"maxItems":13000,"title":"get_characters_character_id_bookmarks_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-bookmarks.read_character_bookmarks.v1"]}],"summary":"List bookmarks","tags":["Bookmarks"],"x-alternate-versions":["legacy","v1"],"x-cached-seconds":3600}},"/v1/characters/{character_id}/bookmarks/folders/":{"get":{"description":"List your character's personal bookmark folders\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_characters_character_id_bookmarks_folders","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of bookmark folders","examples":{"application/json":[{"folder_id":5,"name":"Icecream","owner_id":90000001}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"folder_id":{"description":"folder_id integer","format":"int32","title":"get_characters_character_id_bookmarks_folders_folder_id","type":"integer"},"name":{"description":"name string","title":"get_characters_character_id_bookmarks_folders_name","type":"string"},"owner_id":{"description":"owner_id integer","format":"int32","title":"get_characters_character_id_bookmarks_folders_owner_id","type":"integer"}},"title":"get_characters_character_id_bookmarks_folders_200_ok","type":"object"},"maxItems":10000,"title":"get_characters_character_id_bookmarks_folders_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-bookmarks.read_character_bookmarks.v1"]}],"summary":"List bookmark folders","tags":["Bookmarks"],"x-alternate-versions":["legacy","v1"],"x-cached-seconds":3600}},"/v1/characters/{character_id}/calendar/":{"get":{"description":"Get 50 event summaries from the calendar. If no from_event ID is given, the resource will return the next 50 chronological event summaries from now. If a from_event ID is specified, it will return the next 50 chronological event summaries from after that event.\n\n---\n\nThis route is cached for up to 5 seconds","operationId":"get_characters_character_id_calendar","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"description":"The event ID to retrieve events from","format":"int32","in":"query","name":"from_event","required":false,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A collection of event summaries","examples":{"application/json":[{"event_date":"2016-06-26T20:00:00Z","event_id":1386435,"event_response":"accepted","importance":0,"title":"o7 The EVE Online Show"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"Up to 50 events from now or the event you requested","items":{"description":"event","properties":{"event_date":{"description":"event_date string","format":"date-time","title":"get_characters_character_id_calendar_event_date","type":"string"},"event_id":{"description":"event_id integer","format":"int32","title":"get_characters_character_id_calendar_event_id","type":"integer"},"event_response":{"description":"event_response string","enum":["declined","not_responded","accepted","tentative"],"title":"get_characters_character_id_calendar_event_response","type":"string"},"importance":{"description":"importance integer","format":"int32","title":"get_characters_character_id_calendar_importance","type":"integer"},"title":{"description":"title string","title":"get_characters_character_id_calendar_title","type":"string"}},"title":"get_characters_character_id_calendar_200_ok","type":"object"},"maxItems":50,"title":"get_characters_character_id_calendar_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-calendar.read_calendar_events.v1"]}],"summary":"List calendar event summaries","tags":["Calendar"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":5}},"/v1/characters/{character_id}/calendar/{event_id}/attendees/":{"get":{"description":"Get all invited attendees for a given event\n\n---\n\nThis route is cached for up to 600 seconds","operationId":"get_characters_character_id_calendar_event_id_attendees","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"description":"The id of the event requested","format":"int32","in":"path","name":"event_id","required":true,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of attendees","examples":{"application/json":[{"character_id":2112625428,"event_response":"accepted"},{"character_id":95465499,"event_response":"tentative"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"List of attendees for a given event","items":{"description":"character_id and response of an attendee","properties":{"character_id":{"description":"character_id integer","format":"int32","title":"get_characters_character_id_calendar_event_id_attendees_character_id","type":"integer"},"event_response":{"description":"event_response string","enum":["declined","not_responded","accepted","tentative"],"title":"get_characters_character_id_calendar_event_id_attendees_event_response","type":"string"}},"title":"get_characters_character_id_calendar_event_id_attendees_200_ok","type":"object"},"maxItems":100,"title":"get_characters_character_id_calendar_event_id_attendees_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-calendar.read_calendar_events.v1"]}],"summary":"Get attendees","tags":["Calendar"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":600}},"/v1/characters/{character_id}/chat_channels/":{"get":{"description":"Return chat channels that a character is the owner or operator of\n\n---\n\nThis route is cached for up to 300 seconds","operationId":"get_characters_character_id_chat_channels","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of chat channels","examples":{"application/json":[{"allowed":[],"blocked":[],"channel_id":-69329950,"comparison_key":"players'haven","has_password":false,"motd":"Feed pineapples to the cats!","muted":[],"name":"Players' Haven","operators":[],"owner_id":95578451}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"allowed":{"description":"allowed array","items":{"description":"allowed object","properties":{"accessor_id":{"description":"ID of an allowed channel member","format":"int32","title":"get_characters_character_id_chat_channels_accessor_id","type":"integer"},"accessor_type":{"description":"accessor_type string","enum":["character","corporation","alliance"],"title":"get_characters_character_id_chat_channels_accessor_type","type":"string"}},"required":["accessor_id","accessor_type"],"title":"get_characters_character_id_chat_channels_allowed","type":"object"},"maxItems":1000,"title":"get_characters_character_id_chat_channels_allowed","type":"array"},"blocked":{"description":"blocked array","items":{"description":"blocked object","properties":{"accessor_id":{"description":"ID of a blocked channel member","format":"int32","title":"get_characters_character_id_chat_channels_accessor_id","type":"integer"},"accessor_type":{"description":"accessor_type string","enum":["character","corporation","alliance"],"title":"get_characters_character_id_chat_channels_accessor_type","type":"string"},"end_at":{"description":"Time at which this accessor will no longer be blocked","format":"date-time","title":"get_characters_character_id_chat_channels_end_at","type":"string"},"reason":{"description":"Reason this accessor is blocked","title":"get_characters_character_id_chat_channels_reason","type":"string"}},"required":["accessor_id","accessor_type"],"title":"get_characters_character_id_chat_channels_blocked","type":"object"},"maxItems":1000,"title":"get_characters_character_id_chat_channels_blocked","type":"array"},"channel_id":{"description":"Unique channel ID. Always negative for player-created channels. Permanent (CCP created) channels have a positive ID, but don't appear in the API","format":"int32","title":"get_characters_character_id_chat_channels_channel_id","type":"integer"},"comparison_key":{"description":"Normalized, unique string used to compare channel names","title":"get_characters_character_id_chat_channels_comparison_key","type":"string"},"has_password":{"description":"If this is a password protected channel","title":"get_characters_character_id_chat_channels_has_password","type":"boolean"},"motd":{"description":"Message of the day for this channel","title":"get_characters_character_id_chat_channels_motd","type":"string"},"muted":{"description":"muted array","items":{"description":"muted object","properties":{"accessor_id":{"description":"ID of a muted channel member","format":"int32","title":"get_characters_character_id_chat_channels_accessor_id","type":"integer"},"accessor_type":{"description":"accessor_type string","enum":["character","corporation","alliance"],"title":"get_characters_character_id_chat_channels_accessor_type","type":"string"},"end_at":{"description":"Time at which this accessor will no longer be muted","format":"date-time","title":"get_characters_character_id_chat_channels_end_at","type":"string"},"reason":{"description":"Reason this accessor is muted","title":"get_characters_character_id_chat_channels_reason","type":"string"}},"required":["accessor_id","accessor_type"],"title":"get_characters_character_id_chat_channels_muted","type":"object"},"maxItems":1000,"title":"get_characters_character_id_chat_channels_muted","type":"array"},"name":{"description":"Displayed name of channel","title":"get_characters_character_id_chat_channels_name","type":"string"},"operators":{"description":"operators array","items":{"description":"operator object","properties":{"accessor_id":{"description":"ID of a channel operator","format":"int32","title":"get_characters_character_id_chat_channels_accessor_id","type":"integer"},"accessor_type":{"description":"accessor_type string","enum":["character","corporation","alliance"],"title":"get_characters_character_id_chat_channels_accessor_type","type":"string"}},"required":["accessor_id","accessor_type"],"title":"get_characters_character_id_chat_channels_operator","type":"object"},"maxItems":1000,"title":"get_characters_character_id_chat_channels_operators","type":"array"},"owner_id":{"description":"owner_id integer","format":"int32","title":"get_characters_character_id_chat_channels_owner_id","type":"integer"}},"required":["channel_id","name","owner_id","comparison_key","has_password","motd","allowed","operators","blocked","muted"],"title":"get_characters_character_id_chat_channels_200_ok","type":"object"},"maxItems":1000,"title":"get_characters_character_id_chat_channels_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-characters.read_chat_channels.v1"]}],"summary":"Get chat channels","tags":["Character"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":300}},"/v1/characters/{character_id}/contacts/":{"delete":{"description":"Bulk delete contacts\n\n---\n","operationId":"delete_characters_character_id_contacts","parameters":[{"$ref":"#/parameters/character_id"},{"description":"A list of contacts to delete","in":"body","name":"contact_ids","required":true,"schema":{"description":"contact_ids array","items":{"description":"ID of the contact to delete","format":"int32","title":"delete_characters_character_id_contacts_contact_id","type":"integer"},"maxItems":100,"minItems":1,"title":"delete_characters_character_id_contacts_contact_ids","type":"array"}},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Contacts deleted"},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-characters.write_contacts.v1"]}],"summary":"Delete contacts","tags":["Contacts"],"x-alternate-versions":["legacy","v1"]},"get":{"description":"Return contacts of a character\n\n---\n\nThis route is cached for up to 300 seconds","operationId":"get_characters_character_id_contacts","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of contacts","examples":{"application/json":[{"contact_id":123,"contact_type":"character","is_blocked":true,"is_watched":true,"standing":10.0}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"X-Pages":{"default":1,"description":"Maximum page number","format":"int32","type":"integer"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"contact_id":{"description":"contact_id integer","format":"int32","title":"get_characters_character_id_contacts_contact_id","type":"integer"},"contact_type":{"description":"contact_type string","enum":["character","corporation","alliance","faction"],"title":"get_characters_character_id_contacts_contact_type","type":"string"},"is_blocked":{"description":"Whether this contact is in the blocked list. Note a missing value denotes unknown, not true or false","title":"get_characters_character_id_contacts_is_blocked","type":"boolean"},"is_watched":{"description":"Whether this contact is being watched","title":"get_characters_character_id_contacts_is_watched","type":"boolean"},"label_id":{"description":"Custom label of the contact","format":"int64","title":"get_characters_character_id_contacts_label_id","type":"integer"},"standing":{"description":"Standing of the contact","format":"float","title":"get_characters_character_id_contacts_standing","type":"number"}},"required":["standing","contact_type","contact_id"],"title":"get_characters_character_id_contacts_200_ok","type":"object"},"maxItems":1024,"title":"get_characters_character_id_contacts_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-characters.read_contacts.v1"]}],"summary":"Get contacts","tags":["Contacts"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":300},"post":{"description":"Bulk add contacts with same settings\n\n---\n","operationId":"post_characters_character_id_contacts","parameters":[{"$ref":"#/parameters/character_id"},{"description":"A list of contacts to add","in":"body","name":"contact_ids","required":true,"schema":{"description":"contact_ids array","items":{"description":"ID of the contact to add","format":"int32","title":"post_characters_character_id_contacts_contact_id","type":"integer"},"maxItems":100,"minItems":1,"title":"post_characters_character_id_contacts_contact_ids","type":"array"}},{"$ref":"#/parameters/datasource"},{"default":0,"description":"Add a custom label to the new contact","format":"int64","in":"query","name":"label_id","required":false,"type":"integer"},{"description":"Standing for the new contact","format":"float","in":"query","maximum":10,"minimum":-10,"name":"standing","required":true,"type":"number"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"default":false,"description":"Whether the new contact should be watched, note this is only effective on characters","in":"query","name":"watched","required":false,"type":"boolean"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"201":{"description":"A list of contact ids that successfully created","examples":{"application/json":[123,456]},"schema":{"description":"201 created array","items":{"description":"201 created integer","format":"int32","title":"post_characters_character_id_contacts_201_created","type":"integer"},"maxItems":100,"title":"post_characters_character_id_contacts_created","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-characters.write_contacts.v1"]}],"summary":"Add contacts","tags":["Contacts"],"x-alternate-versions":["dev","legacy","v1"]},"put":{"description":"Bulk edit contacts with same settings\n\n---\n","operationId":"put_characters_character_id_contacts","parameters":[{"$ref":"#/parameters/character_id"},{"description":"A list of contacts to edit","in":"body","name":"contact_ids","required":true,"schema":{"description":"contact_ids array","items":{"description":"ID of the contact to edit","format":"int32","title":"put_characters_character_id_contacts_contact_id","type":"integer"},"maxItems":100,"minItems":1,"title":"put_characters_character_id_contacts_contact_ids","type":"array"}},{"$ref":"#/parameters/datasource"},{"default":0,"description":"Add a custom label to the contact, use 0 for clearing label","format":"int64","in":"query","name":"label_id","required":false,"type":"integer"},{"description":"Standing for the contact","format":"float","in":"query","maximum":10,"minimum":-10,"name":"standing","required":true,"type":"number"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"default":false,"description":"Whether the contact should be watched, note this is only effective on characters","in":"query","name":"watched","required":false,"type":"boolean"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Contacts updated"},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-characters.write_contacts.v1"]}],"summary":"Edit contacts","tags":["Contacts"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/contacts/labels/":{"get":{"description":"Return custom labels for contacts the character defined\n\n---\n\nThis route is cached for up to 300 seconds","operationId":"get_characters_character_id_contacts_labels","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of contact labels","examples":{"application/json":[{"label_id":123,"label_name":"Friends"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"label_id":{"description":"label_id integer","format":"int64","title":"get_characters_character_id_contacts_labels_label_id","type":"integer"},"label_name":{"description":"label_name string","title":"get_characters_character_id_contacts_labels_label_name","type":"string"}},"required":["label_id","label_name"],"title":"get_characters_character_id_contacts_labels_200_ok","type":"object"},"maxItems":64,"title":"get_characters_character_id_contacts_labels_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-characters.read_contacts.v1"]}],"summary":"Get contact labels","tags":["Contacts"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":300}},"/v1/characters/{character_id}/contracts/":{"get":{"description":"Returns contracts available to a character, only if the character is issuer, acceptor or assignee. Only returns contracts no older than 30 days, or if the status is \"in_progress\".\n\n---\n\nThis route is cached for up to 300 seconds","operationId":"get_characters_character_id_contracts","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of contracts","examples":{"application/json":[{"acceptor_id":0,"assignee_id":0,"availability":"public","buyout":10000000000.0,"contract_id":1,"date_accepted":"2017-06-06T13:12:32Z","date_completed":"2017-06-06T13:12:32Z","date_expired":"2017-06-13T13:12:32Z","date_issued":"2017-06-06T13:12:32Z","days_to_complete":0,"end_location_id":60014719,"for_corporation":true,"issuer_corporation_id":456,"issuer_id":123,"price":1000000.0,"reward":0.0,"start_location_id":60014719,"status":"outstanding","type":"auction","volume":0.01}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"acceptor_id":{"description":"Who will accept the contract","format":"int32","title":"get_characters_character_id_contracts_acceptor_id","type":"integer"},"assignee_id":{"description":"ID to whom the contract is assigned, can be corporation or character ID","format":"int32","title":"get_characters_character_id_contracts_assignee_id","type":"integer"},"availability":{"description":"To whom the contract is available","enum":["public","personal","corporation","alliance"],"title":"get_characters_character_id_contracts_availability","type":"string"},"buyout":{"description":"Buyout price (for Auctions only)","format":"float","title":"get_characters_character_id_contracts_buyout","type":"number"},"collateral":{"description":"Collateral price (for Couriers only)","format":"float","title":"get_characters_character_id_contracts_collateral","type":"number"},"contract_id":{"description":"contract_id integer","format":"int32","title":"get_characters_character_id_contracts_contract_id","type":"integer"},"date_accepted":{"description":"Date of confirmation of contract","format":"date-time","title":"get_characters_character_id_contracts_date_accepted","type":"string"},"date_completed":{"description":"Date of completed of contract","format":"date-time","title":"get_characters_character_id_contracts_date_completed","type":"string"},"date_expired":{"description":"Expiration date of the contract","format":"date-time","title":"get_characters_character_id_contracts_date_expired","type":"string"},"date_issued":{"description":"\u0421reation date of the contract","format":"date-time","title":"get_characters_character_id_contracts_date_issued","type":"string"},"days_to_complete":{"description":"Number of days to perform the contract","format":"int32","title":"get_characters_character_id_contracts_days_to_complete","type":"integer"},"end_location_id":{"description":"End location ID (for Couriers contract)","format":"int64","title":"get_characters_character_id_contracts_end_location_id","type":"integer"},"for_corporation":{"description":"true if the contract was issued on behalf of the issuer's corporation","title":"get_characters_character_id_contracts_for_corporation","type":"boolean"},"issuer_corporation_id":{"description":"Character's corporation ID for the issuer","format":"int32","title":"get_characters_character_id_contracts_issuer_corporation_id","type":"integer"},"issuer_id":{"description":"Character ID for the issuer","format":"int32","title":"get_characters_character_id_contracts_issuer_id","type":"integer"},"price":{"description":"Price of contract (for ItemsExchange and Auctions)","format":"float","title":"get_characters_character_id_contracts_price","type":"number"},"reward":{"description":"Remuneration for contract (for Couriers only)","format":"float","title":"get_characters_character_id_contracts_reward","type":"number"},"start_location_id":{"description":"Start location ID (for Couriers contract)","format":"int64","title":"get_characters_character_id_contracts_start_location_id","type":"integer"},"status":{"description":"Status of the the contract","enum":["outstanding","in_progress","finished_issuer","finished_contractor","finished","cancelled","rejected","failed","deleted","reversed"],"title":"get_characters_character_id_contracts_status","type":"string"},"title":{"description":"Title of the contract","title":"get_characters_character_id_contracts_title","type":"string"},"type":{"description":"Type of the contract","enum":["unknown","item_exchange","auction","courier","loan"],"title":"get_characters_character_id_contracts_type","type":"string"},"volume":{"description":"Volume of items in the contract","format":"float","title":"get_characters_character_id_contracts_volume","type":"number"}},"required":["contract_id","issuer_id","issuer_corporation_id","assignee_id","acceptor_id","type","status","for_corporation","availability","date_issued","date_expired"],"title":"get_characters_character_id_contracts_200_ok","type":"object"},"maxItems":10000,"title":"get_characters_character_id_contracts_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-contracts.read_character_contracts.v1"]}],"summary":"Get contracts","tags":["Contracts"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":300}},"/v1/characters/{character_id}/contracts/{contract_id}/bids/":{"get":{"description":"Lists bids on a particular auction contract\n\n---\n\nThis route is cached for up to 300 seconds","operationId":"get_characters_character_id_contracts_contract_id_bids","parameters":[{"$ref":"#/parameters/character_id"},{"description":"ID of a contract","format":"int32","in":"path","name":"contract_id","required":true,"type":"integer"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of bids","examples":{"application/json":[{"amount":1.23,"bid_id":1,"bidder_id":123,"date_bid":"2017-01-01T10:10:10Z"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"amount":{"description":"The amount bid, in ISK","format":"float","title":"get_characters_character_id_contracts_contract_id_bids_amount","type":"number"},"bid_id":{"description":"Unique ID for the bid","format":"int32","title":"get_characters_character_id_contracts_contract_id_bids_bid_id","type":"integer"},"bidder_id":{"description":"Character ID of the bidder","format":"int32","title":"get_characters_character_id_contracts_contract_id_bids_bidder_id","type":"integer"},"date_bid":{"description":"Datetime when the bid was placed","format":"date-time","title":"get_characters_character_id_contracts_contract_id_bids_date_bid","type":"string"}},"required":["bid_id","bidder_id","date_bid","amount"],"title":"get_characters_character_id_contracts_contract_id_bids_200_ok","type":"object"},"maxItems":2000,"title":"get_characters_character_id_contracts_contract_id_bids_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-contracts.read_character_contracts.v1"]}],"summary":"Get contract bids","tags":["Contracts"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":300}},"/v1/characters/{character_id}/contracts/{contract_id}/items/":{"get":{"description":"Lists items of a particular contract\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_characters_character_id_contracts_contract_id_items","parameters":[{"$ref":"#/parameters/character_id"},{"description":"ID of a contract","format":"int32","in":"path","name":"contract_id","required":true,"type":"integer"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of items in this contract","examples":{"application/json":[{"is_included":true,"is_singleton":false,"quantity":1,"record_id":123456,"type_id":587}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"is_included":{"description":"true if the contract issuer has submitted this item with the contract, false if the isser is asking for this item in the contract.","title":"get_characters_character_id_contracts_contract_id_items_is_included","type":"boolean"},"is_singleton":{"description":"is_singleton boolean","title":"get_characters_character_id_contracts_contract_id_items_is_singleton","type":"boolean"},"quantity":{"description":"Number of items in the stack","format":"int32","title":"get_characters_character_id_contracts_contract_id_items_quantity","type":"integer"},"raw_quantity":{"description":"-1 indicates that the item is a singleton (non-stackable). If the item happens to be a Blueprint, -1 is an Original and -2 is a Blueprint Copy","format":"int32","title":"get_characters_character_id_contracts_contract_id_items_raw_quantity","type":"integer"},"record_id":{"description":"Unique ID for the item","format":"int64","title":"get_characters_character_id_contracts_contract_id_items_record_id","type":"integer"},"type_id":{"description":"Type ID for item","format":"int32","title":"get_characters_character_id_contracts_contract_id_items_type_id","type":"integer"}},"required":["record_id","type_id","quantity","is_singleton","is_included"],"title":"get_characters_character_id_contracts_contract_id_items_200_ok","type":"object"},"maxItems":2000,"title":"get_characters_character_id_contracts_contract_id_items_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-contracts.read_character_contracts.v1"]}],"summary":"Get contract items","tags":["Contracts"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/characters/{character_id}/corporationhistory/":{"get":{"description":"Get a list of all the corporations a character has been a member of\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_characters_character_id_corporationhistory","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Corporation history for the given character","examples":{"application/json":[{"corporation_id":90000001,"is_deleted":true,"record_id":500,"start_date":"2016-06-26T20:00:00Z"},{"corporation_id":90000002,"record_id":501,"start_date":"2016-07-26T20:00:00Z"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"corporation_id":{"description":"corporation_id integer","format":"int32","title":"get_characters_character_id_corporationhistory_corporation_id","type":"integer"},"is_deleted":{"description":"True if the corporation has been deleted","title":"get_characters_character_id_corporationhistory_is_deleted","type":"boolean"},"record_id":{"description":"An incrementing ID that can be used to canonically establish order of records in cases where dates may be ambiguous","format":"int32","title":"get_characters_character_id_corporationhistory_record_id","type":"integer"},"start_date":{"description":"start_date string","format":"date-time","title":"get_characters_character_id_corporationhistory_start_date","type":"string"}},"required":["start_date","corporation_id","record_id"],"title":"get_characters_character_id_corporationhistory_200_ok","type":"object"},"maxItems":10000,"title":"get_characters_character_id_corporationhistory_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get corporation history","tags":["Character"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/characters/{character_id}/fatigue/":{"get":{"description":"Return a character's jump activation and fatigue information\n\n---\n\nThis route is cached for up to 300 seconds","operationId":"get_characters_character_id_fatigue","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Jump activation and fatigue information","examples":{"application/json":{"jump_fatigue_expire_date":"2017-07-06T15:47:00Z","last_jump_date":"2017-07-05T15:47:00Z","last_update_date":"2017-07-05T15:42:00Z"}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"jump_fatigue_expire_date":{"description":"Character's jump fatigue expiry","format":"date-time","title":"get_characters_character_id_fatigue_jump_fatigue_expire_date","type":"string"},"last_jump_date":{"description":"Character's last jump activation","format":"date-time","title":"get_characters_character_id_fatigue_last_jump_date","type":"string"},"last_update_date":{"description":"Character's last jump update","format":"date-time","title":"get_characters_character_id_fatigue_last_update_date","type":"string"}},"title":"get_characters_character_id_fatigue_ok","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-characters.read_fatigue.v1"]}],"summary":"Get jump fatigue","tags":["Character"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":300}},"/v1/characters/{character_id}/fittings/":{"get":{"description":"Return fittings of a character\n\n---\n\nThis route is cached for up to 300 seconds","operationId":"get_characters_character_id_fittings","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of fittings","examples":{"application/json":[{"description":"Awesome Vindi fitting","fitting_id":1,"items":[{"flag":12,"quantity":1,"type_id":1234}],"name":"Best Vindicator","ship_type_id":123}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"description":{"description":"description string","title":"get_characters_character_id_fittings_description","type":"string"},"fitting_id":{"description":"fitting_id integer","format":"int32","title":"get_characters_character_id_fittings_fitting_id","type":"integer"},"items":{"description":"items array","items":{"description":"item object","properties":{"flag":{"description":"flag integer","format":"int32","title":"get_characters_character_id_fittings_flag","type":"integer"},"quantity":{"description":"quantity integer","format":"int32","title":"get_characters_character_id_fittings_quantity","type":"integer"},"type_id":{"description":"type_id integer","format":"int32","title":"get_characters_character_id_fittings_type_id","type":"integer"}},"required":["type_id","flag","quantity"],"title":"get_characters_character_id_fittings_item","type":"object"},"maxItems":255,"title":"get_characters_character_id_fittings_items","type":"array"},"name":{"description":"name string","title":"get_characters_character_id_fittings_name","type":"string"},"ship_type_id":{"description":"ship_type_id integer","format":"int32","title":"get_characters_character_id_fittings_ship_type_id","type":"integer"}},"required":["fitting_id","name","description","ship_type_id","items"],"title":"get_characters_character_id_fittings_200_ok","type":"object"},"maxItems":250,"title":"get_characters_character_id_fittings_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-fittings.read_fittings.v1"]}],"summary":"Get fittings","tags":["Fittings"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":300},"post":{"description":"Save a new fitting for a character\n\n---\n","operationId":"post_characters_character_id_fittings","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"description":"Details about the new fitting","in":"body","name":"fitting","schema":{"description":"fitting object","properties":{"description":{"description":"description string","maxLength":500,"minLength":0,"title":"post_characters_character_id_fittings_description","type":"string"},"items":{"description":"items array","items":{"description":"item object","properties":{"flag":{"description":"flag integer","format":"int32","title":"post_characters_character_id_fittings_flag","type":"integer"},"quantity":{"description":"quantity integer","format":"int32","title":"post_characters_character_id_fittings_quantity","type":"integer"},"type_id":{"description":"type_id integer","format":"int32","title":"post_characters_character_id_fittings_type_id","type":"integer"}},"required":["type_id","flag","quantity"],"title":"post_characters_character_id_fittings_item","type":"object"},"maxItems":255,"minItems":1,"title":"post_characters_character_id_fittings_items","type":"array"},"name":{"description":"name string","maxLength":50,"minLength":1,"title":"post_characters_character_id_fittings_name","type":"string"},"ship_type_id":{"description":"ship_type_id integer","format":"int32","title":"post_characters_character_id_fittings_ship_type_id","type":"integer"}},"required":["name","description","ship_type_id","items"],"title":"post_characters_character_id_fittings_fitting","type":"object"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"201":{"description":"A list of fittings","examples":{"application/json":{"fitting_id":2}},"schema":{"description":"201 created object","properties":{"fitting_id":{"description":"fitting_id integer","format":"int32","title":"post_characters_character_id_fittings_fitting_id","type":"integer"}},"required":["fitting_id"],"title":"post_characters_character_id_fittings_created","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-fittings.write_fittings.v1"]}],"summary":"Create fitting","tags":["Fittings"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/fittings/{fitting_id}/":{"delete":{"description":"Delete a fitting from a character\n\n---\n","operationId":"delete_characters_character_id_fittings_fitting_id","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"description":"ID for a fitting of this character","format":"int32","in":"path","name":"fitting_id","required":true,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Fitting deleted"},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-fittings.write_fittings.v1"]}],"summary":"Delete fitting","tags":["Fittings"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/fleet/":{"get":{"description":"Return the fleet ID the character is in, if any.\n\n---\n\nThis route is cached for up to 60 seconds","operationId":"get_characters_character_id_fleet","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Details about the character's fleet","examples":{"application/json":{"fleet_id":1234567890,"role":"fleet_commander","squad_id":-1,"wing_id":-1}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"fleet_id":{"description":"The character's current fleet ID","format":"int64","title":"get_characters_character_id_fleet_fleet_id","type":"integer"},"role":{"description":"Member\u2019s role in fleet","enum":["fleet_commander","squad_commander","squad_member","wing_commander"],"title":"get_characters_character_id_fleet_role","type":"string"},"squad_id":{"description":"ID of the squad the member is in. If not applicable, will be set to -1","format":"int64","title":"get_characters_character_id_fleet_squad_id","type":"integer"},"wing_id":{"description":"ID of the wing the member is in. If not applicable, will be set to -1","format":"int64","title":"get_characters_character_id_fleet_wing_id","type":"integer"}},"required":["fleet_id","wing_id","squad_id","role"],"title":"get_characters_character_id_fleet_ok","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"404":{"description":"The character is not in a fleet","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_characters_character_id_fleet_404_not_found","type":"string"}},"title":"get_characters_character_id_fleet_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-fleets.read_fleet.v1"]}],"summary":"Get character fleet info","tags":["Fleets"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":60}},"/v1/characters/{character_id}/implants/":{"get":{"description":"Return implants on the active clone of a character\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_characters_character_id_implants","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of implant type ids","examples":{"application/json":[1,2,3]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok integer","format":"int32","title":"get_characters_character_id_implants_200_ok","type":"integer"},"maxItems":11,"title":"get_characters_character_id_implants_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-clones.read_implants.v1"]}],"summary":"Get active implants","tags":["Clones"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/characters/{character_id}/industry/jobs/":{"get":{"description":"List industry jobs placed by a character\n\n---\n\nThis route is cached for up to 300 seconds","operationId":"get_characters_character_id_industry_jobs","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"description":"Whether retrieve completed character industry jobs as well","in":"query","name":"include_completed","required":false,"type":"boolean"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Industry jobs placed by a character","examples":{"application/json":[{"activity_id":1,"blueprint_id":1015116533326,"blueprint_location_id":60006382,"blueprint_type_id":2047,"cost":118.0,"duration":548,"end_date":"2014-07-19T15:56:14Z","facility_id":60006382,"installer_id":498338451,"job_id":229136101,"licensed_runs":200,"output_location_id":60006382,"runs":1,"start_date":"2014-07-19T15:47:06Z","station_id":60006382,"status":"active"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"activity_id":{"description":"Job activity ID","format":"int32","title":"get_characters_character_id_industry_jobs_activity_id","type":"integer"},"blueprint_id":{"description":"blueprint_id integer","format":"int64","title":"get_characters_character_id_industry_jobs_blueprint_id","type":"integer"},"blueprint_location_id":{"description":"Location ID of the location from which the blueprint was installed. Normally a station ID, but can also be an asset (e.g. container) or corporation facility","format":"int64","title":"get_characters_character_id_industry_jobs_blueprint_location_id","type":"integer"},"blueprint_type_id":{"description":"blueprint_type_id integer","format":"int32","title":"get_characters_character_id_industry_jobs_blueprint_type_id","type":"integer"},"completed_character_id":{"description":"ID of the character which completed this job","format":"int32","title":"get_characters_character_id_industry_jobs_completed_character_id","type":"integer"},"completed_date":{"description":"Date and time when this job was completed","format":"date-time","title":"get_characters_character_id_industry_jobs_completed_date","type":"string"},"cost":{"description":"The sume of job installation fee and industry facility tax","format":"float","title":"get_characters_character_id_industry_jobs_cost","type":"number"},"duration":{"description":"Job duration in seconds","format":"int32","title":"get_characters_character_id_industry_jobs_duration","type":"integer"},"end_date":{"description":"Date and time when this job finished","format":"date-time","title":"get_characters_character_id_industry_jobs_end_date","type":"string"},"facility_id":{"description":"ID of the facility where this job is running","format":"int64","title":"get_characters_character_id_industry_jobs_facility_id","type":"integer"},"installer_id":{"description":"ID of the character which installed this job","format":"int32","title":"get_characters_character_id_industry_jobs_installer_id","type":"integer"},"job_id":{"description":"Unique job ID","format":"int32","title":"get_characters_character_id_industry_jobs_job_id","type":"integer"},"licensed_runs":{"description":"Number of runs blueprint is licensed for","format":"int32","title":"get_characters_character_id_industry_jobs_licensed_runs","type":"integer"},"output_location_id":{"description":"Location ID of the location to which the output of the job will be delivered. Normally a station ID, but can also be a corporation facility","format":"int64","title":"get_characters_character_id_industry_jobs_output_location_id","type":"integer"},"pause_date":{"description":"Date and time when this job was paused (i.e. time when the facility where this job was installed went offline)","format":"date-time","title":"get_characters_character_id_industry_jobs_pause_date","type":"string"},"probability":{"description":"Chance of success for invention","format":"float","title":"get_characters_character_id_industry_jobs_probability","type":"number"},"product_type_id":{"description":"Type ID of product (manufactured, copied or invented)","format":"int32","title":"get_characters_character_id_industry_jobs_product_type_id","type":"integer"},"runs":{"description":"Number of runs for a manufacturing job, or number of copies to make for a blueprint copy","format":"int32","title":"get_characters_character_id_industry_jobs_runs","type":"integer"},"start_date":{"description":"Date and time when this job started","format":"date-time","title":"get_characters_character_id_industry_jobs_start_date","type":"string"},"station_id":{"description":"ID of the station where industry facility is located","format":"int64","title":"get_characters_character_id_industry_jobs_station_id","type":"integer"},"status":{"description":"status string","enum":["active","paused","ready","delivered","cancelled","reverted"],"title":"get_characters_character_id_industry_jobs_status","type":"string"},"successful_runs":{"description":"Number of successful runs for this job. Equal to runs unless this is an invention job","format":"int32","title":"get_characters_character_id_industry_jobs_successful_runs","type":"integer"}},"required":["job_id","installer_id","facility_id","station_id","activity_id","blueprint_id","blueprint_type_id","blueprint_location_id","output_location_id","runs","status","duration","start_date","end_date"],"title":"get_characters_character_id_industry_jobs_200_ok","type":"object"},"maxItems":2000,"title":"get_characters_character_id_industry_jobs_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-industry.read_character_jobs.v1"]}],"summary":"List character industry jobs","tags":["Industry"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":300}},"/v1/characters/{character_id}/killmails/recent/":{"get":{"description":"Return a list of character's recent kills and losses\n\n---\n\nThis route is cached for up to 120 seconds","operationId":"get_characters_character_id_killmails_recent","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"default":50,"description":"How many killmails to return at maximum","format":"int32","in":"query","maximum":5000,"name":"max_count","required":false,"type":"integer"},{"description":"Only return killmails with ID smaller than this.\n","format":"int32","in":"query","name":"max_kill_id","required":false,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of killmail IDs and hashes","examples":{"application/json":[{"killmail_hash":"8eef5e8fb6b88fe3407c489df33822b2e3b57a5e","killmail_id":2},{"killmail_hash":"b41ccb498ece33d64019f64c0db392aa3aa701fb","killmail_id":1}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"killmail_hash":{"description":"A hash of this killmail","title":"get_characters_character_id_killmails_recent_killmail_hash","type":"string"},"killmail_id":{"description":"ID of this killmail","format":"int32","title":"get_characters_character_id_killmails_recent_killmail_id","type":"integer"}},"required":["killmail_id","killmail_hash"],"title":"get_characters_character_id_killmails_recent_200_ok","type":"object"},"maxItems":5000,"title":"get_characters_character_id_killmails_recent_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-killmails.read_killmails.v1"]}],"summary":"Get character kills and losses","tags":["Killmails"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":120}},"/v1/characters/{character_id}/location/":{"get":{"description":"Information about the characters current location. Returns the current solar system id, and also the current station or structure ID if applicable.\n\n---\n\nThis route is cached for up to 5 seconds","operationId":"get_characters_character_id_location","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about the characters current location. Returns the current solar system id, and also the current station or structure ID if applicable.","examples":{"application/json":{"solar_system_id":30002505,"structure_id":1000000016989}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"solar_system_id":{"description":"solar_system_id integer","format":"int32","title":"get_characters_character_id_location_solar_system_id","type":"integer"},"station_id":{"description":"station_id integer","format":"int32","title":"get_characters_character_id_location_station_id","type":"integer"},"structure_id":{"description":"structure_id integer","format":"int64","title":"get_characters_character_id_location_structure_id","type":"integer"}},"required":["solar_system_id"],"title":"get_characters_character_id_location_ok","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-location.read_location.v1"]}],"summary":"Get character location","tags":["Location"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":5}},"/v1/characters/{character_id}/loyalty/points/":{"get":{"description":"Return a list of loyalty points for all corporations the character has worked for\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_characters_character_id_loyalty_points","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of loyalty points","examples":{"application/json":[{"corporation_id":123,"loyalty_points":100}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"corporation_id":{"description":"corporation_id integer","format":"int32","title":"get_characters_character_id_loyalty_points_corporation_id","type":"integer"},"loyalty_points":{"description":"loyalty_points integer","format":"int32","title":"get_characters_character_id_loyalty_points_loyalty_points","type":"integer"}},"required":["corporation_id","loyalty_points"],"title":"get_characters_character_id_loyalty_points_200_ok","type":"object"},"maxItems":500,"title":"get_characters_character_id_loyalty_points_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-characters.read_loyalty.v1"]}],"summary":"Get loyalty points","tags":["Loyalty"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/characters/{character_id}/mail/":{"get":{"description":"Return the 50 most recent mail headers belonging to the character that match the query criteria. Queries can be filtered by label, and last_mail_id can be used to paginate backwards.\n\n---\n\nThis route is cached for up to 30 seconds","operationId":"get_characters_character_id_mail","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"description":"Fetch only mails that match one or more of the given labels","in":"query","items":{"format":"int64","minimum":0,"type":"integer"},"maxItems":25,"minItems":1,"name":"labels","required":false,"type":"array","uniqueItems":true},{"description":"List only mail with an ID lower than the given ID, if present","format":"int32","in":"query","name":"last_mail_id","type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"The requested mail","examples":{"application/json":[{"from":90000001,"is_read":true,"labels":[3],"mail_id":7,"recipients":[{"recipient_id":90000002,"recipient_type":"character"}],"subject":"Title for EVE Mail","timestamp":"2015-09-30T16:07:00Z"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"from":{"description":"From whom the mail was sent","format":"int32","title":"get_characters_character_id_mail_from","type":"integer"},"is_read":{"description":"is_read boolean","title":"get_characters_character_id_mail_is_read","type":"boolean"},"labels":{"description":"labels array","items":{"description":"label integer","format":"int64","title":"get_characters_character_id_mail_label","type":"integer"},"maxItems":25,"minimum":0,"title":"get_characters_character_id_mail_labels","type":"array","uniqueItems":true},"mail_id":{"description":"mail_id integer","format":"int64","title":"get_characters_character_id_mail_mail_id","type":"integer"},"recipients":{"description":"Recipients of the mail","items":{"description":"recipient object","properties":{"recipient_id":{"description":"recipient_id integer","format":"int32","title":"get_characters_character_id_mail_recipient_id","type":"integer"},"recipient_type":{"description":"recipient_type string","enum":["alliance","character","corporation","mailing_list"],"title":"get_characters_character_id_mail_recipient_type","type":"string"}},"required":["recipient_type","recipient_id"],"title":"get_characters_character_id_mail_recipient","type":"object"},"maxItems":52,"minItems":1,"title":"get_characters_character_id_mail_recipients","type":"array","uniqueItems":true},"subject":{"description":"Mail subject","title":"get_characters_character_id_mail_subject","type":"string"},"timestamp":{"description":"When the mail was sent","format":"date-time","title":"get_characters_character_id_mail_timestamp","type":"string"}},"title":"get_characters_character_id_mail_200_ok","type":"object"},"maxItems":50,"title":"get_characters_character_id_mail_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-mail.read_mail.v1"]}],"summary":"Return mail headers","tags":["Mail"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":30},"post":{"description":"Create and send a new mail\n\n---\n","operationId":"post_characters_character_id_mail","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"description":"The mail to send","in":"body","name":"mail","required":true,"schema":{"description":"mail schema","properties":{"approved_cost":{"default":0,"description":"approved_cost integer","format":"int64","title":"post_characters_character_id_mail_approved_cost","type":"integer"},"body":{"description":"body string","maxLength":10000,"title":"post_characters_character_id_mail_body","type":"string"},"recipients":{"description":"recipients array","items":{"description":"recipient object","properties":{"recipient_id":{"description":"recipient_id integer","format":"int32","title":"post_characters_character_id_mail_recipient_id","type":"integer"},"recipient_type":{"description":"recipient_type string","enum":["alliance","character","corporation","mailing_list"],"title":"post_characters_character_id_mail_recipient_type","type":"string"}},"required":["recipient_type","recipient_id"],"title":"post_characters_character_id_mail_recipient","type":"object"},"maxItems":50,"minItems":1,"title":"post_characters_character_id_mail_recipients","type":"array"},"subject":{"description":"subject string","maxLength":1000,"title":"post_characters_character_id_mail_subject","type":"string"}},"required":["recipients","subject","body"],"title":"post_characters_character_id_mail_mail"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"201":{"description":"Mail created","examples":{"application/json":13},"schema":{"description":"Mail ID","format":"int32","title":"post_characters_character_id_mail_created","type":"integer"}},"400":{"description":"Only one corporation, alliance, or mailing list can be the recipient of a mail","examples":{"application/json":{"error":"Bad request message"}},"schema":{"description":"Bad request","properties":{"error":{"description":"Bad request message","title":"post_characters_character_id_mail_400_bad_request","type":"string"}},"title":"post_characters_character_id_mail_bad_request","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-mail.send_mail.v1"]}],"summary":"Send a new mail","tags":["Mail"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/mail/labels/{label_id}/":{"delete":{"description":"Delete a mail label\n\n---\n","operationId":"delete_characters_character_id_mail_labels_label_id","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"description":"An EVE label id","format":"int32","in":"path","name":"label_id","required":true,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Label deleted"},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"422":{"description":"Default labels cannot be deleted","examples":{"application/json":{"error":"Unprocessable entity message"}},"schema":{"description":"Unprocessable entity","properties":{"error":{"description":"Unprocessable entity message","title":"delete_characters_character_id_mail_labels_label_id_422_unprocessable_entity","type":"string"}},"title":"delete_characters_character_id_mail_labels_label_id_unprocessable_entity","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-mail.organize_mail.v1"]}],"summary":"Delete a mail label","tags":["Mail"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/mail/lists/":{"get":{"description":"Return all mailing lists that the character is subscribed to\n\n---\n\nThis route is cached for up to 120 seconds","operationId":"get_characters_character_id_mail_lists","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Mailing lists","examples":{"application/json":[{"mailing_list_id":1,"name":"test_mailing_list"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"mailing_list_id":{"description":"Mailing list ID","format":"int32","title":"get_characters_character_id_mail_lists_mailing_list_id","type":"integer"},"name":{"description":"name string","title":"get_characters_character_id_mail_lists_name","type":"string"}},"required":["mailing_list_id","name"],"title":"get_characters_character_id_mail_lists_200_ok","type":"object"},"maxItems":1000,"title":"get_characters_character_id_mail_lists_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-mail.read_mail.v1"]}],"summary":"Return mailing list subscriptions","tags":["Mail"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":120}},"/v1/characters/{character_id}/mail/{mail_id}/":{"delete":{"description":"Delete a mail\n\n---\n","operationId":"delete_characters_character_id_mail_mail_id","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"description":"An EVE mail ID","format":"int32","in":"path","name":"mail_id","required":true,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Mail deleted"},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-mail.organize_mail.v1"]}],"summary":"Delete a mail","tags":["Mail"],"x-alternate-versions":["dev","legacy","v1"]},"get":{"description":"Return the contents of an EVE mail\n\n---\n\nThis route is cached for up to 30 seconds","operationId":"get_characters_character_id_mail_mail_id","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"description":"An EVE mail ID","format":"int32","in":"path","name":"mail_id","required":true,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Contents of a mail","examples":{"application/json":{"body":"blah blah blah","from":90000001,"labels":[2,32],"read":true,"subject":"test","timestamp":"2015-09-30T16:07:00Z"}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"body":{"description":"Mail's body","title":"get_characters_character_id_mail_mail_id_body","type":"string"},"from":{"description":"From whom the mail was sent","format":"int32","title":"get_characters_character_id_mail_mail_id_from","type":"integer"},"labels":{"description":"Labels attached to the mail","items":{"description":"label integer","format":"int64","minimum":0,"title":"get_characters_character_id_mail_mail_id_label","type":"integer","uniqueItems":true},"maxItems":25,"title":"get_characters_character_id_mail_mail_id_labels","type":"array"},"read":{"description":"Whether the mail is flagged as read","title":"get_characters_character_id_mail_mail_id_read","type":"boolean"},"recipients":{"description":"Recipients of the mail","items":{"description":"recipient object","properties":{"recipient_id":{"description":"recipient_id integer","format":"int32","title":"get_characters_character_id_mail_mail_id_recipient_id","type":"integer"},"recipient_type":{"description":"recipient_type string","enum":["alliance","character","corporation","mailing_list"],"title":"get_characters_character_id_mail_mail_id_recipient_type","type":"string"}},"required":["recipient_type","recipient_id"],"title":"get_characters_character_id_mail_mail_id_recipient","type":"object"},"maxItems":52,"minItems":1,"title":"get_characters_character_id_mail_mail_id_recipients","type":"array","uniqueItems":true},"subject":{"description":"Mail subject","title":"get_characters_character_id_mail_mail_id_subject","type":"string"},"timestamp":{"description":"When the mail was sent","format":"date-time","title":"get_characters_character_id_mail_mail_id_timestamp","type":"string"}},"title":"get_characters_character_id_mail_mail_id_ok","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"404":{"description":"Mail not found","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_characters_character_id_mail_mail_id_404_not_found","type":"string"}},"title":"get_characters_character_id_mail_mail_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-mail.read_mail.v1"]}],"summary":"Return a mail","tags":["Mail"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":30},"put":{"description":"Update metadata about a mail\n\n---\n","operationId":"put_characters_character_id_mail_mail_id","parameters":[{"$ref":"#/parameters/character_id"},{"description":"Data used to update the mail","in":"body","name":"contents","required":true,"schema":{"description":"contents object","properties":{"labels":{"description":"Labels to assign to the mail. Pre-existing labels are unassigned.","items":{"description":"label integer","format":"int64","minimum":0,"title":"put_characters_character_id_mail_mail_id_label","type":"integer","uniqueItems":true},"maxItems":25,"title":"put_characters_character_id_mail_mail_id_labels","type":"array"},"read":{"description":"Whether the mail is flagged as read","title":"put_characters_character_id_mail_mail_id_read","type":"boolean"}},"title":"put_characters_character_id_mail_mail_id_contents","type":"object"}},{"$ref":"#/parameters/datasource"},{"description":"An EVE mail ID","format":"int32","in":"path","name":"mail_id","required":true,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Mail updated"},"400":{"description":"Invalid label ID; or No parameters in body -- nothing to do","examples":{"application/json":{"error":"Bad request message"}},"schema":{"description":"Bad request","properties":{"error":{"description":"Bad request message","title":"put_characters_character_id_mail_mail_id_400_bad_request","type":"string"}},"title":"put_characters_character_id_mail_mail_id_bad_request","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-mail.organize_mail.v1"]}],"summary":"Update metadata about a mail","tags":["Mail"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/medals/":{"get":{"description":"Return a list of medals the character has\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_characters_character_id_medals","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of medals","examples":{"application/json":[{"corporation_id":98000001,"date":"2017-03-16T15:01:45Z","description":"For 33 corp!","graphics":[{"color":-1,"graphic":"gallente.1_1","layer":0,"part":1}],"issuer_id":2112000002,"medal_id":3,"reason":"Thanks!","status":"private","title":"33 tester medal"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"corporation_id":{"description":"corporation_id integer","format":"int32","title":"get_characters_character_id_medals_corporation_id","type":"integer"},"date":{"description":"date string","format":"date-time","title":"get_characters_character_id_medals_date","type":"string"},"description":{"description":"description string","title":"get_characters_character_id_medals_description","type":"string"},"graphics":{"description":"graphics array","items":{"description":"graphic object","properties":{"color":{"description":"color integer","format":"int32","title":"get_characters_character_id_medals_color","type":"integer"},"graphic":{"description":"graphic string","title":"get_characters_character_id_medals_graphic","type":"string"},"layer":{"description":"layer integer","format":"int32","title":"get_characters_character_id_medals_layer","type":"integer"},"part":{"description":"part integer","format":"int32","title":"get_characters_character_id_medals_part","type":"integer"}},"required":["part","layer","graphic"],"title":"get_characters_character_id_medals_graphic","type":"object"},"maxItems":10,"title":"get_characters_character_id_medals_graphics","type":"array"},"issuer_id":{"description":"issuer_id integer","format":"int32","title":"get_characters_character_id_medals_issuer_id","type":"integer"},"medal_id":{"description":"medal_id integer","format":"int32","title":"get_characters_character_id_medals_medal_id","type":"integer"},"reason":{"description":"reason string","title":"get_characters_character_id_medals_reason","type":"string"},"status":{"description":"status string","enum":["public","private"],"title":"get_characters_character_id_medals_status","type":"string"},"title":{"description":"title string","title":"get_characters_character_id_medals_title","type":"string"}},"required":["medal_id","title","description","corporation_id","issuer_id","date","reason","status","graphics"],"title":"get_characters_character_id_medals_200_ok","type":"object"},"maxItems":1000,"title":"get_characters_character_id_medals_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-characters.read_medals.v1"]}],"summary":"Get medals","tags":["Character"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/characters/{character_id}/notifications/":{"get":{"description":"Return character notifications\n\n---\n\nThis route is cached for up to 600 seconds","operationId":"get_characters_character_id_notifications","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Returns your recent notifications","examples":{"application/json":[{"is_read":true,"notification_id":1,"sender_id":1000132,"sender_type":"corporation","text":"amount: 3731016.4000000004\\nitemID: 1024881021663\\npayout: 1\\n","timestamp":"2017-08-16T10:08:00Z","type":"InsurancePayoutMsg"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"is_read":{"description":"is_read boolean","title":"get_characters_character_id_notifications_is_read","type":"boolean"},"notification_id":{"description":"notification_id integer","format":"int64","title":"get_characters_character_id_notifications_notification_id","type":"integer"},"sender_id":{"description":"sender_id integer","format":"int32","title":"get_characters_character_id_notifications_sender_id","type":"integer"},"sender_type":{"description":"sender_type string","enum":["character","corporation","alliance","faction","other"],"title":"get_characters_character_id_notifications_sender_type","type":"string"},"text":{"description":"text string","title":"get_characters_character_id_notifications_text","type":"string"},"timestamp":{"description":"timestamp string","format":"date-time","title":"get_characters_character_id_notifications_timestamp","type":"string"},"type":{"description":"type string","enum":["AcceptedAlly","AcceptedSurrender","AllAnchoringMsg","AllMaintenanceBillMsg","AllStrucInvulnerableMsg","AllStructVulnerableMsg","AllWarCorpJoinedAllianceMsg","AllWarDeclaredMsg","AllWarInvalidatedMsg","AllWarRetractedMsg","AllWarSurrenderMsg","AllianceCapitalChanged","AllyContractCancelled","AllyJoinedWarAggressorMsg","AllyJoinedWarAllyMsg","AllyJoinedWarDefenderMsg","BattlePunishFriendlyFire","BillOutOfMoneyMsg","BillPaidCorpAllMsg","BountyClaimMsg","BountyESSShared","BountyESSTaken","BountyPlacedAlliance","BountyPlacedChar","BountyPlacedCorp","BountyYourBountyClaimed","BuddyConnectContactAdd","CharAppAcceptMsg","CharAppRejectMsg","CharAppWithdrawMsg","CharLeftCorpMsg","CharMedalMsg","CharTerminationMsg","CloneActivationMsg","CloneActivationMsg2","CloneMovedMsg","CloneRevokedMsg1","CloneRevokedMsg2","ContactAdd","ContactEdit","ContainerPasswordMsg","CorpAllBillMsg","CorpAppAcceptMsg","CorpAppInvitedMsg","CorpAppNewMsg","CorpAppRejectCustomMsg","CorpAppRejectMsg","CorpDividendMsg","CorpFriendlyFireDisableTimerCompleted","CorpFriendlyFireDisableTimerStarted","CorpFriendlyFireEnableTimerCompleted","CorpFriendlyFireEnableTimerStarted","CorpKicked","CorpLiquidationMsg","CorpNewCEOMsg","CorpNewsMsg","CorpOfficeExpirationMsg","CorpStructLostMsg","CorpTaxChangeMsg","CorpVoteCEORevokedMsg","CorpVoteMsg","CorpWarDeclaredMsg","CorpWarFightingLegalMsg","CorpWarInvalidatedMsg","CorpWarRetractedMsg","CorpWarSurrenderMsg","CustomsMsg","DeclareWar","DistrictAttacked","DustAppAcceptedMsg","EntosisCaptureStarted","FWAllianceKickMsg","FWAllianceWarningMsg","FWCharKickMsg","FWCharRankGainMsg","FWCharRankLossMsg","FWCharWarningMsg","FWCorpJoinMsg","FWCorpKickMsg","FWCorpLeaveMsg","FWCorpWarningMsg","FacWarCorpJoinRequestMsg","FacWarCorpJoinWithdrawMsg","FacWarCorpLeaveRequestMsg","FacWarCorpLeaveWithdrawMsg","FacWarLPDisqualifiedEvent","FacWarLPDisqualifiedKill","FacWarLPPayoutEvent","FacWarLPPayoutKill","GameTimeAdded","GameTimeReceived","GameTimeSent","GiftReceived","IHubDestroyedByBillFailure","IncursionCompletedMsg","IndustryTeamAuctionLost","IndustryTeamAuctionWon","InfrastructureHubBillAboutToExpire","InsuranceExpirationMsg","InsuranceFirstShipMsg","InsuranceInvalidatedMsg","InsuranceIssuedMsg","InsurancePayoutMsg","JumpCloneDeletedMsg1","JumpCloneDeletedMsg2","KillReportFinalBlow","KillReportVictim","KillRightAvailable","KillRightAvailableOpen","KillRightEarned","KillRightUnavailable","KillRightUnavailableOpen","KillRightUsed","LocateCharMsg","MadeWarMutual","MercOfferedNegotiationMsg","MissionOfferExpirationMsg","MissionTimeoutMsg","MoonminingAutomaticFracture","MoonminingExtractionCancelled","MoonminingExtractionFinished","MoonminingLaserFired","NPCStandingsGained","NPCStandingsLost","OfferedSurrender","OfferedToAlly","OldLscMessages","OperationFinished","OrbitalAttacked","OrbitalReinforced","OwnershipTransferred","ReimbursementMsg","ResearchMissionAvailableMsg","RetractsWar","SeasonalChallengeCompleted","SovAllClaimAquiredMsg","SovAllClaimLostMsg","SovCommandNodeEventStarted","SovCorpBillLateMsg","SovCorpClaimFailMsg","SovDisruptorMsg","SovStationEnteredFreeport","SovStructureDestroyed","SovStructureReinforced","SovStructureSelfDestructCancel","SovStructureSelfDestructFinished","SovStructureSelfDestructRequested","SovereigntyIHDamageMsg","SovereigntySBUDamageMsg","SovereigntyTCUDamageMsg","StationAggressionMsg1","StationAggressionMsg2","StationConquerMsg","StationServiceDisabled","StationServiceEnabled","StationStateChangeMsg","StoryLineMissionAvailableMsg","StructureAnchoring","StructureCourierContractChanged","StructureDestroyed","StructureFuelAlert","StructureItemsDelivered","StructureLostArmor","StructureLostShields","StructureOnline","StructureServicesOffline","StructureUnanchoring","StructureUnderAttack","TowerAlertMsg","TowerResourceAlertMsg","TransactionReversalMsg","TutorialMsg","WarAllyOfferDeclinedMsg","WarSurrenderDeclinedMsg","WarSurrenderOfferMsg","notificationTypeMoonminingExtractionStarted"],"title":"get_characters_character_id_notifications_type","type":"string"}},"required":["notification_id","type","sender_id","sender_type","timestamp"],"title":"get_characters_character_id_notifications_200_ok","type":"object"},"maxItems":500,"title":"get_characters_character_id_notifications_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-characters.read_notifications.v1"]}],"summary":"Get character notifications","tags":["Character"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":600}},"/v1/characters/{character_id}/notifications/contacts/":{"get":{"description":"Return notifications about having been added to someone's contact list\n\n---\n\nThis route is cached for up to 600 seconds","operationId":"get_characters_character_id_notifications_contacts","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of contact notifications","examples":{"application/json":[{"message":"hello friend :3","notification_id":1,"send_date":"2017-08-16T10:08:00Z","sender_character_id":95465499,"standing_level":1.5}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"message":{"description":"message string","title":"get_characters_character_id_notifications_contacts_message","type":"string"},"notification_id":{"description":"notification_id integer","format":"int32","title":"get_characters_character_id_notifications_contacts_notification_id","type":"integer"},"send_date":{"description":"send_date string","format":"date-time","title":"get_characters_character_id_notifications_contacts_send_date","type":"string"},"sender_character_id":{"description":"sender_character_id integer","format":"int32","title":"get_characters_character_id_notifications_contacts_sender_character_id","type":"integer"},"standing_level":{"description":"A number representing the standing level the receiver has been added at by the sender. The standing levels are as follows: -10 -> Terrible | -5 -> Bad | 0 -> Neutral | 5 -> Good | 10 -> Excellent","format":"float","title":"get_characters_character_id_notifications_contacts_standing_level","type":"number"}},"required":["notification_id","send_date","standing_level","message","sender_character_id"],"title":"get_characters_character_id_notifications_contacts_200_ok","type":"object"},"maxItems":50,"title":"get_characters_character_id_notifications_contacts_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-characters.read_notifications.v1"]}],"summary":"Get new contact notifications","tags":["Character"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":600}},"/v1/characters/{character_id}/online/":{"get":{"description":"Checks if the character is currently online\n\n---\n\nThis route is cached for up to 60 seconds","operationId":"get_characters_character_id_online","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Boolean of if the character is currently online","examples":{"application/json":true},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok boolean","title":"get_characters_character_id_online_ok","type":"boolean"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-location.read_online.v1"]}],"summary":"Get character online","tags":["Location"],"x-alternate-versions":["legacy","v1"],"x-cached-seconds":60}},"/v1/characters/{character_id}/opportunities/":{"get":{"description":"Return a list of tasks finished by a character\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_characters_character_id_opportunities","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of opportunities task ids","examples":{"application/json":[{"completed_at":"2016-04-29T12:34:56Z","task_id":1}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"completed_at":{"description":"completed_at string","format":"date-time","title":"get_characters_character_id_opportunities_completed_at","type":"string"},"task_id":{"description":"task_id integer","format":"int32","title":"get_characters_character_id_opportunities_task_id","type":"integer"}},"required":["task_id","completed_at"],"title":"get_characters_character_id_opportunities_200_ok","type":"object"},"maxItems":100,"title":"get_characters_character_id_opportunities_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-characters.read_opportunities.v1"]}],"summary":"Get a character's completed tasks","tags":["Opportunities"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/characters/{character_id}/orders/":{"get":{"description":"List market orders placed by a character\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_characters_character_id_orders","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Market orders placed by a character","examples":{"application/json":[{"account_id":1000,"duration":30,"escrow":45.6,"is_buy_order":true,"is_corp":false,"issued":"2016-09-03T05:12:25Z","location_id":456,"min_volume":1,"order_id":123,"price":33.3,"range":"station","region_id":123,"state":"open","type_id":456,"volume_remain":4422,"volume_total":123456}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"account_id":{"description":"Wallet division for the buyer or seller of this order. Always 1000 for characters. Currently 1000 through 1006 for corporations","format":"int32","title":"get_characters_character_id_orders_account_id","type":"integer"},"duration":{"description":"Numer of days for which order is valid (starting from the issued date). An order expires at time issued + duration","format":"int32","title":"get_characters_character_id_orders_duration","type":"integer"},"escrow":{"description":"For buy orders, the amount of ISK in escrow","format":"float","title":"get_characters_character_id_orders_escrow","type":"number"},"is_buy_order":{"description":"True for a bid (buy) order. False for an offer (sell) order","title":"get_characters_character_id_orders_is_buy_order","type":"boolean"},"is_corp":{"description":"is_corp boolean","title":"get_characters_character_id_orders_is_corp","type":"boolean"},"issued":{"description":"Date and time when this order was issued","format":"date-time","title":"get_characters_character_id_orders_issued","type":"string"},"location_id":{"description":"ID of the location where order was placed","format":"int64","title":"get_characters_character_id_orders_location_id","type":"integer"},"min_volume":{"description":"For bids (buy orders), the minimum quantity that will be accepted in a matching offer (sell order)","format":"int32","title":"get_characters_character_id_orders_min_volume","type":"integer"},"order_id":{"description":"Unique order ID","format":"int64","title":"get_characters_character_id_orders_order_id","type":"integer"},"price":{"description":"Cost per unit for this order","format":"float","title":"get_characters_character_id_orders_price","type":"number"},"range":{"description":"Valid order range, numbers are ranges in jumps","enum":["1","10","2","20","3","30","4","40","5","region","solarsystem","station"],"title":"get_characters_character_id_orders_range","type":"string"},"region_id":{"description":"ID of the region where order was placed","format":"int32","title":"get_characters_character_id_orders_region_id","type":"integer"},"state":{"description":"Current order state","enum":["cancelled","character_deleted","closed","expired","open","pending"],"title":"get_characters_character_id_orders_state","type":"string"},"type_id":{"description":"The type ID of the item transacted in this order","format":"int32","title":"get_characters_character_id_orders_type_id","type":"integer"},"volume_remain":{"description":"Quantity of items still required or offered","format":"int32","title":"get_characters_character_id_orders_volume_remain","type":"integer"},"volume_total":{"description":"Quantity of items required or offered at time order was placed","format":"int32","title":"get_characters_character_id_orders_volume_total","type":"integer"}},"required":["order_id","type_id","region_id","location_id","range","is_buy_order","price","volume_total","volume_remain","issued","state","min_volume","account_id","duration","is_corp","escrow"],"title":"get_characters_character_id_orders_200_ok","type":"object"},"maxItems":500,"title":"get_characters_character_id_orders_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-markets.read_character_orders.v1"]}],"summary":"List orders from a character","tags":["Market"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/characters/{character_id}/planets/":{"get":{"description":"Returns a list of all planetary colonies owned by a character.\n\n---\n\nThis route is cached for up to 600 seconds","operationId":"get_characters_character_id_planets","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of colonies","examples":{"application/json":[{"last_update":"2016-11-28T16:42:51Z","num_pins":1,"owner_id":90000001,"planet_id":40023691,"planet_type":"plasma","solar_system_id":30000379,"upgrade_level":0},{"last_update":"2016-11-28T16:41:54Z","num_pins":1,"owner_id":90000001,"planet_id":40023697,"planet_type":"barren","solar_system_id":30000379,"upgrade_level":0}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"last_update":{"description":"last_update string","format":"date-time","title":"get_characters_character_id_planets_last_update","type":"string"},"num_pins":{"description":"num_pins integer","format":"int32","minimum":1,"title":"get_characters_character_id_planets_num_pins","type":"integer"},"owner_id":{"description":"owner_id integer","format":"int32","title":"get_characters_character_id_planets_owner_id","type":"integer"},"planet_id":{"description":"planet_id integer","format":"int32","title":"get_characters_character_id_planets_planet_id","type":"integer"},"planet_type":{"description":"planet_type string","enum":["temperate","barren","oceanic","ice","gas","lava","storm","plasma"],"title":"get_characters_character_id_planets_planet_type","type":"string"},"solar_system_id":{"description":"solar_system_id integer","format":"int32","title":"get_characters_character_id_planets_solar_system_id","type":"integer"},"upgrade_level":{"description":"upgrade_level integer","format":"int32","maximum":5,"minimum":0,"title":"get_characters_character_id_planets_upgrade_level","type":"integer"}},"required":["solar_system_id","planet_id","planet_type","owner_id","last_update","upgrade_level","num_pins"],"title":"get_characters_character_id_planets_200_ok","type":"object"},"maxItems":10,"title":"get_characters_character_id_planets_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-planets.manage_planets.v1"]}],"summary":"Get colonies","tags":["Planetary Interaction"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":600}},"/v1/characters/{character_id}/roles/":{"get":{"description":"Returns a character's corporation roles\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_characters_character_id_roles","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"The character's roles in thier corporation","examples":{"application/json":["Director","Station_Manager"]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok string","enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_characters_character_id_roles_200_ok","type":"string"},"maxItems":50,"title":"get_characters_character_id_roles_ok","type":"array","uniqueItems":true}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-characters.read_corporation_roles.v1"]}],"summary":"Get character corporation roles","tags":["Character"],"x-alternate-versions":["legacy","v1"],"x-cached-seconds":3600}},"/v1/characters/{character_id}/ship/":{"get":{"description":"Get the current ship type, name and id\n\n---\n\nThis route is cached for up to 5 seconds","operationId":"get_characters_character_id_ship","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Get the current ship type, name and id","examples":{"application/json":{"ship_item_id":1000000016991,"ship_name":"SPACESHIPS!!!","ship_type_id":1233}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"ship_item_id":{"description":"Item id's are unique to a ship and persist until it is repackaged. This value can be used to track repeated uses of a ship, or detect when a pilot changes into a different instance of the same ship type.","format":"int64","title":"get_characters_character_id_ship_ship_item_id","type":"integer"},"ship_name":{"description":"ship_name string","title":"get_characters_character_id_ship_ship_name","type":"string"},"ship_type_id":{"description":"ship_type_id integer","format":"int32","title":"get_characters_character_id_ship_ship_type_id","type":"integer"}},"required":["ship_type_id","ship_item_id","ship_name"],"title":"get_characters_character_id_ship_ok","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-location.read_ship_type.v1"]}],"summary":"Get current ship","tags":["Location"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":5}},"/v1/characters/{character_id}/standings/":{"get":{"description":"Return character standings from agents, NPC corporations, and factions\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_characters_character_id_standings","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of standings","examples":{"application/json":[{"from_id":3009841,"from_type":"agent","standing":0.1},{"from_id":1000061,"from_type":"npc_corp","standing":0},{"from_id":500003,"from_type":"faction","standing":-1}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"from_id":{"description":"from_id integer","format":"int32","title":"get_characters_character_id_standings_from_id","type":"integer"},"from_type":{"description":"from_type string","enum":["agent","npc_corp","faction"],"title":"get_characters_character_id_standings_from_type","type":"string"},"standing":{"description":"standing number","format":"float","maximum":10,"minimum":-10,"title":"get_characters_character_id_standings_standing","type":"number"}},"required":["from_id","from_type","standing"],"title":"get_characters_character_id_standings_200_ok","type":"object"},"maxItems":10000,"title":"get_characters_character_id_standings_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-characters.read_standings.v1"]}],"summary":"Get standings","tags":["Character"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/characters/{character_id}/wallet/":{"get":{"description":"Returns a character's wallet balance\n\n---\n\nThis route is cached for up to 120 seconds","operationId":"get_characters_character_id_wallet","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Wallet balance","examples":{"application/json":29500.0},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"Wallet balance","format":"float","title":"get_characters_character_id_wallet_ok","type":"number"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-wallet.read_character_wallet.v1"]}],"summary":"Get a character's wallet balance","tags":["Wallet"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":120}},"/v1/characters/{character_id}/wallet/transactions/":{"get":{"description":"Get wallet transactions of a character\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_characters_character_id_wallet_transactions","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"description":"Only show transactions happened before the one referenced by this id","format":"int64","in":"query","name":"from_id","required":false,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Wallet transactions","examples":{"application/json":[{"client_id":54321,"date":"2016-10-24T09:00:00Z","is_buy":true,"is_personal":true,"journal_ref_id":67890,"location_id":60014719,"quantity":1,"transaction_id":1234567890,"type_id":587,"unit_price":1}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"Wallet transactions","items":{"description":"wallet transaction","properties":{"client_id":{"description":"client_id integer","format":"int32","title":"get_characters_character_id_wallet_transactions_client_id","type":"integer"},"date":{"description":"Date and time of transaction","format":"date-time","title":"get_characters_character_id_wallet_transactions_date","type":"string"},"is_buy":{"description":"is_buy boolean","title":"get_characters_character_id_wallet_transactions_is_buy","type":"boolean"},"is_personal":{"description":"is_personal boolean","title":"get_characters_character_id_wallet_transactions_is_personal","type":"boolean"},"journal_ref_id":{"description":"journal_ref_id integer","format":"int64","title":"get_characters_character_id_wallet_transactions_journal_ref_id","type":"integer"},"location_id":{"description":"location_id integer","format":"int64","title":"get_characters_character_id_wallet_transactions_location_id","type":"integer"},"quantity":{"description":"quantity integer","format":"int32","title":"get_characters_character_id_wallet_transactions_quantity","type":"integer"},"transaction_id":{"description":"Unique transaction ID","format":"int64","title":"get_characters_character_id_wallet_transactions_transaction_id","type":"integer"},"type_id":{"description":"type_id integer","format":"int32","title":"get_characters_character_id_wallet_transactions_type_id","type":"integer"},"unit_price":{"description":"Amount paid per unit","format":"float","title":"get_characters_character_id_wallet_transactions_unit_price","type":"number"}},"required":["transaction_id","date","location_id","type_id","unit_price","quantity","client_id","is_buy","is_personal","journal_ref_id"],"title":"get_characters_character_id_wallet_transactions_200_ok","type":"object"},"maxItems":2500,"title":"get_characters_character_id_wallet_transactions_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-wallet.read_character_wallet.v1"]}],"summary":"Get wallet transactions","tags":["Wallet"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/corporations/names/":{"get":{"description":"Resolve a set of corporation IDs to corporation names\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_names","parameters":[{"description":"A comma separated list of corporation IDs","in":"query","items":{"format":"int64","type":"integer"},"maxItems":100,"minItems":1,"name":"corporation_ids","required":true,"type":"array"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of id/name associations","examples":{"application/json":[{"corporation_id":1000171,"corporation_name":"Republic University"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"corporation_id":{"description":"corporation_id integer","format":"int32","title":"get_corporations_names_corporation_id","type":"integer"},"corporation_name":{"description":"corporation_name string","title":"get_corporations_names_corporation_name","type":"string"}},"required":["corporation_id","corporation_name"],"title":"get_corporations_names_200_ok","type":"object"},"maxItems":100,"title":"get_corporations_names_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get corporation names","tags":["Corporation"],"x-alternate-versions":["legacy","v1"],"x-cached-seconds":3600}},"/v1/corporations/npccorps/":{"get":{"description":"Get a list of npc corporations\n\n---\n\nThis route expires daily at 11:05","operationId":"get_corporations_npccorps","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of npc corporation ids","examples":{"application/json":[1000001,1000002,1000003]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok integer","format":"int32","title":"get_corporations_npccorps_200_ok","type":"integer"},"maxItems":500,"title":"get_corporations_npccorps_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get npc corporations","tags":["Corporation"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/assets/":{"get":{"description":"Return a list of the corporation assets\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_assets","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of assets","examples":{"application/json":[{"is_singleton":true,"item_id":1000000016835,"location_flag":"Hangar","location_id":60002959,"location_type":"station","type_id":3516}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"X-Pages":{"default":1,"description":"Maximum page number","format":"int32","type":"integer"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"is_singleton":{"description":"is_singleton boolean","title":"get_corporations_corporation_id_assets_is_singleton","type":"boolean"},"item_id":{"description":"item_id integer","format":"int64","title":"get_corporations_corporation_id_assets_item_id","type":"integer"},"location_flag":{"description":"location_flag string","enum":["AssetSafety","AutoFit","Bonus","Booster","BoosterBay","Capsule","Cargo","CorpDeliveries","CorpSAG1","CorpSAG2","CorpSAG3","CorpSAG4","CorpSAG5","CorpSAG6","CorpSAG7","CrateLoot","Deliveries","DroneBay","DustBattle","DustDatabank","FighterBay","FighterTube0","FighterTube1","FighterTube2","FighterTube3","FighterTube4","FleetHangar","Hangar","HangarAll","HiSlot0","HiSlot1","HiSlot2","HiSlot3","HiSlot4","HiSlot5","HiSlot6","HiSlot7","HiddenModifers","Implant","Impounded","JunkyardReprocessed","JunkyardTrashed","LoSlot0","LoSlot1","LoSlot2","LoSlot3","LoSlot4","LoSlot5","LoSlot6","LoSlot7","Locked","MedSlot0","MedSlot1","MedSlot2","MedSlot3","MedSlot4","MedSlot5","MedSlot6","MedSlot7","OfficeFolder","Pilot","PlanetSurface","QuafeBay","Reward","RigSlot0","RigSlot1","RigSlot2","RigSlot3","RigSlot4","RigSlot5","RigSlot6","RigSlot7","SecondaryStorage","ServiceSlot0","ServiceSlot1","ServiceSlot2","ServiceSlot3","ServiceSlot4","ServiceSlot5","ServiceSlot6","ServiceSlot7","ShipHangar","ShipOffline","Skill","SkillInTraining","SpecializedAmmoHold","SpecializedCommandCenterHold","SpecializedFuelBay","SpecializedGasHold","SpecializedIndustrialShipHold","SpecializedLargeShipHold","SpecializedMaterialBay","SpecializedMediumShipHold","SpecializedMineralHold","SpecializedOreHold","SpecializedPlanetaryCommoditiesHold","SpecializedSalvageHold","SpecializedShipHold","SpecializedSmallShipHold","StructureActive","StructureFuel","StructureInactive","StructureOffline","SubSystemSlot0","SubSystemSlot1","SubSystemSlot2","SubSystemSlot3","SubSystemSlot4","SubSystemSlot5","SubSystemSlot6","SubSystemSlot7","SubsystemBay","Unlocked","Wallet","Wardrobe"],"title":"get_corporations_corporation_id_assets_location_flag","type":"string"},"location_id":{"description":"location_id integer","format":"int64","title":"get_corporations_corporation_id_assets_location_id","type":"integer"},"location_type":{"description":"location_type string","enum":["station","solar_system","other"],"title":"get_corporations_corporation_id_assets_location_type","type":"string"},"quantity":{"description":"quantity integer","format":"int32","title":"get_corporations_corporation_id_assets_quantity","type":"integer"},"type_id":{"description":"type_id integer","format":"int32","title":"get_corporations_corporation_id_assets_type_id","type":"integer"}},"required":["type_id","location_id","location_type","item_id","location_flag","is_singleton"],"title":"get_corporations_corporation_id_assets_200_ok","type":"object"},"maxItems":5000,"title":"get_corporations_corporation_id_assets_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-assets.read_corporation_assets.v1"]}],"summary":"Get corporation assets","tags":["Assets"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600,"x-required-roles":["Director"]}},"/v1/corporations/{corporation_id}/assets/locations/":{"post":{"description":"Return locations for a set of item ids, which you can get from corporation assets endpoint. Coordinates for items in hangars or stations are set to (0,0,0)\n\n---\n","operationId":"post_corporations_corporation_id_assets_locations","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"description":"A list of item ids","in":"body","name":"item_ids","required":true,"schema":{"description":"item_ids array","items":{"description":"item_id integer","format":"int64","title":"post_corporations_corporation_id_assets_locations_item_id","type":"integer"},"maxItems":1000,"minItems":1,"title":"post_corporations_corporation_id_assets_locations_item_ids","type":"array","uniqueItems":true}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of asset locations","examples":{"application/json":[{"item_id":12345,"x":1.2,"y":2.3,"z":-3.4}]},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"item_id":{"description":"item_id integer","format":"int64","title":"post_corporations_corporation_id_assets_locations_item_id","type":"integer"},"x":{"description":"x number","format":"double","title":"post_corporations_corporation_id_assets_locations_x","type":"number"},"y":{"description":"y number","format":"double","title":"post_corporations_corporation_id_assets_locations_y","type":"number"},"z":{"description":"z number","format":"double","title":"post_corporations_corporation_id_assets_locations_z","type":"number"}},"required":["item_id","x","y","z"],"title":"post_corporations_corporation_id_assets_locations_200_ok","type":"object"},"maxItems":1000,"title":"post_corporations_corporation_id_assets_locations_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-assets.read_corporation_assets.v1"]}],"summary":"Get corporation asset locations","tags":["Assets"],"x-alternate-versions":["dev","legacy","v1"],"x-required-roles":["Director"]}},"/v1/corporations/{corporation_id}/assets/names/":{"post":{"description":"Return names for a set of item ids, which you can get from corporation assets endpoint. Only valid for items that can customize names, like containers or ships.\n\n---\n","operationId":"post_corporations_corporation_id_assets_names","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"description":"A list of item ids","in":"body","name":"item_ids","required":true,"schema":{"description":"item_ids array","items":{"description":"item_id integer","format":"int64","title":"post_corporations_corporation_id_assets_names_item_id","type":"integer"},"maxItems":1000,"minItems":1,"title":"post_corporations_corporation_id_assets_names_item_ids","type":"array","uniqueItems":true}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of asset names","examples":{"application/json":[{"item_id":12345,"name":"Awesome Name"}]},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"item_id":{"description":"item_id integer","format":"int64","title":"post_corporations_corporation_id_assets_names_item_id","type":"integer"},"name":{"description":"name string","title":"post_corporations_corporation_id_assets_names_name","type":"string"}},"required":["item_id","name"],"title":"post_corporations_corporation_id_assets_names_200_ok","type":"object"},"maxItems":1000,"title":"post_corporations_corporation_id_assets_names_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-assets.read_corporation_assets.v1"]}],"summary":"Get coporation asset names","tags":["Assets"],"x-alternate-versions":["dev","legacy","v1"],"x-required-roles":["Director"]}},"/v1/corporations/{corporation_id}/blueprints/":{"get":{"description":"Returns a list of blueprints the corporation owns\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_blueprints","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of corporation blueprints","examples":{"application/json":[{"item_id":1000000010495,"location_flag":"CorpSAG1","location_id":60014719,"material_efficiency":0,"quantity":1,"runs":-1,"time_efficiency":0,"type_id":691}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"X-Pages":{"default":1,"description":"Maximum page number","format":"int32","type":"integer"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"item_id":{"description":"Unique ID for this item.","format":"int64","title":"get_corporations_corporation_id_blueprints_item_id","type":"integer"},"location_flag":{"description":"Type of the location_id","enum":["AssetSafety","AutoFit","Bonus","Booster","BoosterBay","Capsule","Cargo","CorpDeliveries","CorpSAG1","CorpSAG2","CorpSAG3","CorpSAG4","CorpSAG5","CorpSAG6","CorpSAG7","CrateLoot","Deliveries","DroneBay","DustBattle","DustDatabank","FighterBay","FighterTube0","FighterTube1","FighterTube2","FighterTube3","FighterTube4","FleetHangar","Hangar","HangarAll","HiSlot0","HiSlot1","HiSlot2","HiSlot3","HiSlot4","HiSlot5","HiSlot6","HiSlot7","HiddenModifers","Implant","Impounded","JunkyardReprocessed","JunkyardTrashed","LoSlot0","LoSlot1","LoSlot2","LoSlot3","LoSlot4","LoSlot5","LoSlot6","LoSlot7","Locked","MedSlot0","MedSlot1","MedSlot2","MedSlot3","MedSlot4","MedSlot5","MedSlot6","MedSlot7","OfficeFolder","Pilot","PlanetSurface","QuafeBay","Reward","RigSlot0","RigSlot1","RigSlot2","RigSlot3","RigSlot4","RigSlot5","RigSlot6","RigSlot7","SecondaryStorage","ServiceSlot0","ServiceSlot1","ServiceSlot2","ServiceSlot3","ServiceSlot4","ServiceSlot5","ServiceSlot6","ServiceSlot7","ShipHangar","ShipOffline","Skill","SkillInTraining","SpecializedAmmoHold","SpecializedCommandCenterHold","SpecializedFuelBay","SpecializedGasHold","SpecializedIndustrialShipHold","SpecializedLargeShipHold","SpecializedMaterialBay","SpecializedMediumShipHold","SpecializedMineralHold","SpecializedOreHold","SpecializedPlanetaryCommoditiesHold","SpecializedSalvageHold","SpecializedShipHold","SpecializedSmallShipHold","StructureActive","StructureFuel","StructureInactive","StructureOffline","SubSystemSlot0","SubSystemSlot1","SubSystemSlot2","SubSystemSlot3","SubSystemSlot4","SubSystemSlot5","SubSystemSlot6","SubSystemSlot7","SubsystemBay","Unlocked","Wallet","Wardrobe"],"title":"get_corporations_corporation_id_blueprints_location_flag","type":"string"},"location_id":{"description":"References a solar system, station or item_id if this blueprint is located within a container.","format":"int64","title":"get_corporations_corporation_id_blueprints_location_id","type":"integer"},"material_efficiency":{"description":"Material Efficiency Level of the blueprint.","format":"int32","maximum":10,"minimum":0,"title":"get_corporations_corporation_id_blueprints_material_efficiency","type":"integer"},"quantity":{"description":"A range of numbers with a minimum of -2 and no maximum value where -1 is an original and -2 is a copy. It can be a positive integer if it is a stack of blueprint originals fresh from the market (e.g. no activities performed on them yet).","format":"int32","minimum":-2,"title":"get_corporations_corporation_id_blueprints_quantity","type":"integer"},"runs":{"description":"Number of runs remaining if the blueprint is a copy, -1 if it is an original.","format":"int32","minimum":-1,"title":"get_corporations_corporation_id_blueprints_runs","type":"integer"},"time_efficiency":{"description":"Time Efficiency Level of the blueprint.","format":"int32","maximum":20,"minimum":0,"title":"get_corporations_corporation_id_blueprints_time_efficiency","type":"integer"},"type_id":{"description":"type_id integer","format":"int32","title":"get_corporations_corporation_id_blueprints_type_id","type":"integer"}},"required":["item_id","type_id","location_id","location_flag","quantity","time_efficiency","material_efficiency","runs"],"title":"get_corporations_corporation_id_blueprints_200_ok","type":"object"},"maxItems":1000,"title":"get_corporations_corporation_id_blueprints_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-corporations.read_blueprints.v1"]}],"summary":"Get corporation blueprints","tags":["Corporation"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600,"x-required-roles":["Director"]}},"/v1/corporations/{corporation_id}/bookmarks/":{"get":{"description":"A list of your corporation's bookmarks\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_bookmarks","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of corporation owned bookmarks","examples":{"application/json":[{"bookmark_id":4,"created":"2016-08-09T11:57:47Z","creator_id":2112625428,"folder_id":5,"item":{"item_id":50006722,"type_id":29633},"label":"Stargate","location_id":30003430,"notes":"This is a stargate"},{"bookmark_id":5,"coordinates":{"x":-2958928814000,"y":-338367275823,"z":2114538075090},"created":"2016-08-09T11:57:47Z","creator_id":2112625428,"folder_id":5,"label":"Random location","location_id":30003430,"notes":"This is a random location in space"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"X-Pages":{"default":1,"description":"Maximum page number","format":"int32","type":"integer"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"bookmark_id":{"description":"bookmark_id integer","format":"int32","title":"get_corporations_corporation_id_bookmarks_bookmark_id","type":"integer"},"coordinates":{"description":"Optional object that is returned if a bookmark was made on a planet or a random location in space.","properties":{"x":{"description":"x number","format":"double","title":"get_corporations_corporation_id_bookmarks_x","type":"number"},"y":{"description":"y number","format":"double","title":"get_corporations_corporation_id_bookmarks_y","type":"number"},"z":{"description":"z number","format":"double","title":"get_corporations_corporation_id_bookmarks_z","type":"number"}},"required":["x","y","z"],"title":"get_corporations_corporation_id_bookmarks_coordinates","type":"object"},"created":{"description":"created string","format":"date-time","title":"get_corporations_corporation_id_bookmarks_created","type":"string"},"creator_id":{"description":"creator_id integer","format":"int32","title":"get_corporations_corporation_id_bookmarks_creator_id","type":"integer"},"folder_id":{"description":"folder_id integer","format":"int32","title":"get_corporations_corporation_id_bookmarks_folder_id","type":"integer"},"item":{"description":"Optional object that is returned if a bookmark was made on a particular item.","properties":{"item_id":{"description":"item_id integer","format":"int64","title":"get_corporations_corporation_id_bookmarks_item_id","type":"integer"},"type_id":{"description":"type_id integer","format":"int32","title":"get_corporations_corporation_id_bookmarks_type_id","type":"integer"}},"required":["item_id","type_id"],"title":"get_corporations_corporation_id_bookmarks_item","type":"object"},"label":{"description":"label string","title":"get_corporations_corporation_id_bookmarks_label","type":"string"},"location_id":{"description":"location_id integer","format":"int32","title":"get_corporations_corporation_id_bookmarks_location_id","type":"integer"},"notes":{"description":"notes string","title":"get_corporations_corporation_id_bookmarks_notes","type":"string"}},"required":["bookmark_id","creator_id","created","label","notes","location_id"],"title":"get_corporations_corporation_id_bookmarks_200_ok","type":"object"},"maxItems":1000,"title":"get_corporations_corporation_id_bookmarks_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-bookmarks.read_corporation_bookmarks.v1"]}],"summary":"List corporation bookmarks","tags":["Bookmarks"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/corporations/{corporation_id}/bookmarks/folders/":{"get":{"description":"A list of your corporation's bookmark folders\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_bookmarks_folders","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of corporation owned bookmark folders","examples":{"application/json":[{"folder_id":5,"name":"Important Locations"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"X-Pages":{"default":1,"description":"Maximum page number","format":"int32","type":"integer"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"creator_id":{"description":"creator_id integer","format":"int32","title":"get_corporations_corporation_id_bookmarks_folders_creator_id","type":"integer"},"folder_id":{"description":"folder_id integer","format":"int32","title":"get_corporations_corporation_id_bookmarks_folders_folder_id","type":"integer"},"name":{"description":"name string","title":"get_corporations_corporation_id_bookmarks_folders_name","type":"string"}},"required":["folder_id","name"],"title":"get_corporations_corporation_id_bookmarks_folders_200_ok","type":"object"},"maxItems":1000,"title":"get_corporations_corporation_id_bookmarks_folders_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-bookmarks.read_corporation_bookmarks.v1"]}],"summary":"List corporation bookmark folders","tags":["Bookmarks"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/corporations/{corporation_id}/contacts/":{"get":{"description":"Return contacts of a corporation\n\n---\n\nThis route is cached for up to 300 seconds","operationId":"get_corporations_corporation_id_contacts","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of contacts","examples":{"application/json":[{"contact_id":123,"contact_type":"character","is_watched":true,"standing":10.0}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"X-Pages":{"default":1,"description":"Maximum page number","format":"int32","type":"integer"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"contact_id":{"description":"contact_id integer","format":"int32","title":"get_corporations_corporation_id_contacts_contact_id","type":"integer"},"contact_type":{"description":"contact_type string","enum":["character","corporation","alliance","faction"],"title":"get_corporations_corporation_id_contacts_contact_type","type":"string"},"is_watched":{"description":"Whether this contact is being watched","title":"get_corporations_corporation_id_contacts_is_watched","type":"boolean"},"label_id":{"description":"Custom label of the contact","format":"int64","title":"get_corporations_corporation_id_contacts_label_id","type":"integer"},"standing":{"description":"Standing of the contact","format":"float","title":"get_corporations_corporation_id_contacts_standing","type":"number"}},"required":["standing","contact_type","contact_id"],"title":"get_corporations_corporation_id_contacts_200_ok","type":"object"},"maxItems":200,"title":"get_corporations_corporation_id_contacts_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-corporations.read_contacts.v1"]}],"summary":"Get corporation contacts","tags":["Contacts"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":300,"x-required-roles":[]}},"/v1/corporations/{corporation_id}/containers/logs/":{"get":{"description":"Returns logs recorded in the past seven days from all audit log secure containers (ALSC) owned by a given corporation\n\n---\n\nThis route is cached for up to 600 seconds","operationId":"get_corporations_corporation_id_containers_logs","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of corporation ALSC logs","examples":{"application/json":[{"action":"set_password","character_id":2112625428,"container_id":1000000012279,"container_type_id":17365,"location_flag":"CorpSAG1","location_id":1000000012278,"logged_at":"2017-10-10T14:00:00Z","password_type":"general"},{"action":"lock","character_id":2112625428,"container_id":1000000012279,"container_type_id":17365,"location_flag":"CorpSAG1","location_id":1000000012278,"logged_at":"2017-10-11T12:04:33","quantity":30,"type_id":1230},{"action":"configure","character_id":2112625428,"container_id":1000000012279,"container_type_id":17365,"location_flag":"CorpSAG2","location_id":1000000012278,"logged_at":"2017-10-11T12:06:29Z","new_config_bitmask":31,"old_config_bitmask":23}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"X-Pages":{"default":1,"description":"Maximum page number","format":"int32","type":"integer"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"action":{"description":"action string","enum":["add","assemble","configure","enter_password","lock","move","repackage","set_name","set_password","unlock"],"title":"get_corporations_corporation_id_containers_logs_action","type":"string"},"character_id":{"description":"ID of the character who performed the action.","format":"int32","title":"get_corporations_corporation_id_containers_logs_character_id","type":"integer"},"container_id":{"description":"ID of the container","format":"int64","title":"get_corporations_corporation_id_containers_logs_container_id","type":"integer"},"container_type_id":{"description":"Type ID of the container","format":"int32","title":"get_corporations_corporation_id_containers_logs_container_type_id","type":"integer"},"location_flag":{"description":"location_flag string","enum":["AssetSafety","AutoFit","Bonus","Booster","BoosterBay","Capsule","Cargo","CorpDeliveries","CorpSAG1","CorpSAG2","CorpSAG3","CorpSAG4","CorpSAG5","CorpSAG6","CorpSAG7","CrateLoot","Deliveries","DroneBay","DustBattle","DustDatabank","FighterBay","FighterTube0","FighterTube1","FighterTube2","FighterTube3","FighterTube4","FleetHangar","Hangar","HangarAll","HiSlot0","HiSlot1","HiSlot2","HiSlot3","HiSlot4","HiSlot5","HiSlot6","HiSlot7","HiddenModifers","Implant","Impounded","JunkyardReprocessed","JunkyardTrashed","LoSlot0","LoSlot1","LoSlot2","LoSlot3","LoSlot4","LoSlot5","LoSlot6","LoSlot7","Locked","MedSlot0","MedSlot1","MedSlot2","MedSlot3","MedSlot4","MedSlot5","MedSlot6","MedSlot7","OfficeFolder","Pilot","PlanetSurface","QuafeBay","Reward","RigSlot0","RigSlot1","RigSlot2","RigSlot3","RigSlot4","RigSlot5","RigSlot6","RigSlot7","SecondaryStorage","ServiceSlot0","ServiceSlot1","ServiceSlot2","ServiceSlot3","ServiceSlot4","ServiceSlot5","ServiceSlot6","ServiceSlot7","ShipHangar","ShipOffline","Skill","SkillInTraining","SpecializedAmmoHold","SpecializedCommandCenterHold","SpecializedFuelBay","SpecializedGasHold","SpecializedIndustrialShipHold","SpecializedLargeShipHold","SpecializedMaterialBay","SpecializedMediumShipHold","SpecializedMineralHold","SpecializedOreHold","SpecializedPlanetaryCommoditiesHold","SpecializedSalvageHold","SpecializedShipHold","SpecializedSmallShipHold","StructureActive","StructureFuel","StructureInactive","StructureOffline","SubSystemSlot0","SubSystemSlot1","SubSystemSlot2","SubSystemSlot3","SubSystemSlot4","SubSystemSlot5","SubSystemSlot6","SubSystemSlot7","SubsystemBay","Unlocked","Wallet","Wardrobe"],"title":"get_corporations_corporation_id_containers_logs_location_flag","type":"string"},"location_id":{"description":"location_id integer","format":"int64","title":"get_corporations_corporation_id_containers_logs_location_id","type":"integer"},"logged_at":{"description":"Timestamp when this log was created","format":"date-time","title":"get_corporations_corporation_id_containers_logs_logged_at","type":"string"},"new_config_bitmask":{"description":"new_config_bitmask integer","format":"int32","title":"get_corporations_corporation_id_containers_logs_new_config_bitmask","type":"integer"},"old_config_bitmask":{"description":"old_config_bitmask integer","format":"int32","title":"get_corporations_corporation_id_containers_logs_old_config_bitmask","type":"integer"},"password_type":{"description":"Type of password set if action is of type SetPassword or EnterPassword","enum":["config","general"],"title":"get_corporations_corporation_id_containers_logs_password_type","type":"string"},"quantity":{"description":"Quantity of the item being acted upon","format":"int32","title":"get_corporations_corporation_id_containers_logs_quantity","type":"integer"},"type_id":{"description":"Type ID of the item being acted upon","format":"int32","title":"get_corporations_corporation_id_containers_logs_type_id","type":"integer"}},"required":["logged_at","container_id","container_type_id","character_id","location_id","action","location_flag"],"title":"get_corporations_corporation_id_containers_logs_200_ok","type":"object"},"maxItems":1000,"title":"get_corporations_corporation_id_containers_logs_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-corporations.read_container_logs.v1"]}],"summary":"Get all corporation ALSC logs","tags":["Corporation"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":600,"x-required-roles":["Director"]}},"/v1/corporations/{corporation_id}/contracts/":{"get":{"description":"Returns contracts available to a coporation, only if the corporation is issuer, acceptor or assignee. Only returns contracts no older than 30 days, or if the status is \"in_progress\".\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_contracts","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of contracts","examples":{"application/json":[{"acceptor_id":0,"assignee_id":0,"availability":"public","buyout":10000000000.0,"contract_id":1,"date_accepted":"2017-06-06T13:12:32Z","date_completed":"2017-06-06T13:12:32Z","date_expired":"2017-06-13T13:12:32Z","date_issued":"2017-06-06T13:12:32Z","days_to_complete":0,"end_location_id":60014719,"for_corporation":true,"issuer_corporation_id":456,"issuer_id":123,"price":1000000.0,"reward":0.0,"start_location_id":60014719,"status":"outstanding","type":"auction","volume":0.01}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"acceptor_id":{"description":"Who will accept the contract","format":"int32","title":"get_corporations_corporation_id_contracts_acceptor_id","type":"integer"},"assignee_id":{"description":"ID to whom the contract is assigned, can be corporation or character ID","format":"int32","title":"get_corporations_corporation_id_contracts_assignee_id","type":"integer"},"availability":{"description":"To whom the contract is available","enum":["public","personal","corporation","alliance"],"title":"get_corporations_corporation_id_contracts_availability","type":"string"},"buyout":{"description":"Buyout price (for Auctions only)","format":"float","title":"get_corporations_corporation_id_contracts_buyout","type":"number"},"collateral":{"description":"Collateral price (for Couriers only)","format":"float","title":"get_corporations_corporation_id_contracts_collateral","type":"number"},"contract_id":{"description":"contract_id integer","format":"int32","title":"get_corporations_corporation_id_contracts_contract_id","type":"integer"},"date_accepted":{"description":"Date of confirmation of contract","format":"date-time","title":"get_corporations_corporation_id_contracts_date_accepted","type":"string"},"date_completed":{"description":"Date of completed of contract","format":"date-time","title":"get_corporations_corporation_id_contracts_date_completed","type":"string"},"date_expired":{"description":"Expiration date of the contract","format":"date-time","title":"get_corporations_corporation_id_contracts_date_expired","type":"string"},"date_issued":{"description":"\u0421reation date of the contract","format":"date-time","title":"get_corporations_corporation_id_contracts_date_issued","type":"string"},"days_to_complete":{"description":"Number of days to perform the contract","format":"int32","title":"get_corporations_corporation_id_contracts_days_to_complete","type":"integer"},"end_location_id":{"description":"End location ID (for Couriers contract)","format":"int64","title":"get_corporations_corporation_id_contracts_end_location_id","type":"integer"},"for_corporation":{"description":"true if the contract was issued on behalf of the issuer's corporation","title":"get_corporations_corporation_id_contracts_for_corporation","type":"boolean"},"issuer_corporation_id":{"description":"Character's corporation ID for the issuer","format":"int32","title":"get_corporations_corporation_id_contracts_issuer_corporation_id","type":"integer"},"issuer_id":{"description":"Character ID for the issuer","format":"int32","title":"get_corporations_corporation_id_contracts_issuer_id","type":"integer"},"price":{"description":"Price of contract (for ItemsExchange and Auctions)","format":"float","title":"get_corporations_corporation_id_contracts_price","type":"number"},"reward":{"description":"Remuneration for contract (for Couriers only)","format":"float","title":"get_corporations_corporation_id_contracts_reward","type":"number"},"start_location_id":{"description":"Start location ID (for Couriers contract)","format":"int64","title":"get_corporations_corporation_id_contracts_start_location_id","type":"integer"},"status":{"description":"Status of the the contract","enum":["outstanding","in_progress","finished_issuer","finished_contractor","finished","cancelled","rejected","failed","deleted","reversed"],"title":"get_corporations_corporation_id_contracts_status","type":"string"},"title":{"description":"Title of the contract","title":"get_corporations_corporation_id_contracts_title","type":"string"},"type":{"description":"Type of the contract","enum":["unknown","item_exchange","auction","courier","loan"],"title":"get_corporations_corporation_id_contracts_type","type":"string"},"volume":{"description":"Volume of items in the contract","format":"float","title":"get_corporations_corporation_id_contracts_volume","type":"number"}},"required":["contract_id","issuer_id","issuer_corporation_id","assignee_id","acceptor_id","type","status","for_corporation","availability","date_issued","date_expired"],"title":"get_corporations_corporation_id_contracts_200_ok","type":"object"},"maxItems":10000,"title":"get_corporations_corporation_id_contracts_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-contracts.read_corporation_contracts.v1"]}],"summary":"Get coporation contracts","tags":["Contracts"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600,"x-required-roles":[]}},"/v1/corporations/{corporation_id}/contracts/{contract_id}/bids/":{"get":{"description":"Lists bids on a particular auction contract\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_contracts_contract_id_bids","parameters":[{"description":"ID of a contract","format":"int32","in":"path","name":"contract_id","required":true,"type":"integer"},{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of bids","examples":{"application/json":[{"amount":1.23,"bid_id":1,"bidder_id":123,"date_bid":"2017-01-01T10:10:10Z"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"X-Pages":{"default":1,"description":"Maximum page number","format":"int32","type":"integer"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"amount":{"description":"The amount bid, in ISK","format":"float","title":"get_corporations_corporation_id_contracts_contract_id_bids_amount","type":"number"},"bid_id":{"description":"Unique ID for the bid","format":"int32","title":"get_corporations_corporation_id_contracts_contract_id_bids_bid_id","type":"integer"},"bidder_id":{"description":"Character ID of the bidder","format":"int32","title":"get_corporations_corporation_id_contracts_contract_id_bids_bidder_id","type":"integer"},"date_bid":{"description":"Datetime when the bid was placed","format":"date-time","title":"get_corporations_corporation_id_contracts_contract_id_bids_date_bid","type":"string"}},"required":["bid_id","bidder_id","date_bid","amount"],"title":"get_corporations_corporation_id_contracts_contract_id_bids_200_ok","type":"object"},"maxItems":1000,"title":"get_corporations_corporation_id_contracts_contract_id_bids_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-contracts.read_corporation_contracts.v1"]}],"summary":"Get corporation contract bids","tags":["Contracts"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600,"x-required-roles":[]}},"/v1/corporations/{corporation_id}/contracts/{contract_id}/items/":{"get":{"description":"Lists items of a particular contract\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_contracts_contract_id_items","parameters":[{"description":"ID of a contract","format":"int32","in":"path","name":"contract_id","required":true,"type":"integer"},{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of items in this contract","examples":{"application/json":[{"is_included":true,"is_singleton":false,"quantity":1,"record_id":123456,"type_id":587}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"is_included":{"description":"true if the contract issuer has submitted this item with the contract, false if the isser is asking for this item in the contract.","title":"get_corporations_corporation_id_contracts_contract_id_items_is_included","type":"boolean"},"is_singleton":{"description":"is_singleton boolean","title":"get_corporations_corporation_id_contracts_contract_id_items_is_singleton","type":"boolean"},"quantity":{"description":"Number of items in the stack","format":"int32","title":"get_corporations_corporation_id_contracts_contract_id_items_quantity","type":"integer"},"raw_quantity":{"description":"-1 indicates that the item is a singleton (non-stackable). If the item happens to be a Blueprint, -1 is an Original and -2 is a Blueprint Copy","format":"int32","title":"get_corporations_corporation_id_contracts_contract_id_items_raw_quantity","type":"integer"},"record_id":{"description":"Unique ID for the item","format":"int64","title":"get_corporations_corporation_id_contracts_contract_id_items_record_id","type":"integer"},"type_id":{"description":"Type ID for item","format":"int32","title":"get_corporations_corporation_id_contracts_contract_id_items_type_id","type":"integer"}},"required":["record_id","type_id","quantity","is_singleton","is_included"],"title":"get_corporations_corporation_id_contracts_contract_id_items_200_ok","type":"object"},"maxItems":2000,"title":"get_corporations_corporation_id_contracts_contract_id_items_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-contracts.read_corporation_contracts.v1"]}],"summary":"Get corporation contract items","tags":["Contracts"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600,"x-required-roles":[]}},"/v1/corporations/{corporation_id}/divisions/":{"get":{"description":"Return corporation hangar and wallet division names, only show if a division is not using the default name\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_divisions","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of corporation division names","examples":{"application/json":{"hangar":[{"division":1,"name":"Awesome Hangar 1"}],"wallet":[{"division":1,"name":"Rich Wallet 1"}]}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"hangar":{"description":"hangar array","items":{"description":"hangar object","properties":{"division":{"description":"division integer","format":"int32","maximum":7,"minimum":1,"title":"get_corporations_corporation_id_divisions_division","type":"integer"},"name":{"description":"name string","maxLength":50,"title":"get_corporations_corporation_id_divisions_name","type":"string"}},"title":"get_corporations_corporation_id_divisions_hangar","type":"object"},"maxItems":7,"title":"get_corporations_corporation_id_divisions_hangar","type":"array"},"wallet":{"description":"wallet array","items":{"description":"wallet object","properties":{"division":{"description":"division integer","format":"int32","maximum":7,"minimum":1,"title":"get_corporations_corporation_id_divisions_division","type":"integer"},"name":{"description":"name string","maxLength":50,"title":"get_corporations_corporation_id_divisions_name","type":"string"}},"title":"get_corporations_corporation_id_divisions_wallet","type":"object"},"maxItems":7,"title":"get_corporations_corporation_id_divisions_wallet","type":"array"}},"title":"get_corporations_corporation_id_divisions_ok","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-corporations.read_divisions.v1"]}],"summary":"Get corporation divisions","tags":["Corporation"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600,"x-required-roles":["Director"]}},"/v1/corporations/{corporation_id}/icons/":{"get":{"description":"Get the icon urls for a corporation\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_icons","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Urls for icons for the given corporation id and server","examples":{"application/json":{"px128x128":"https://imageserver.eveonline.com/Corporation/1000010_128.png","px256x256":"https://imageserver.eveonline.com/Corporation/1000010_256.png","px64x64":"https://imageserver.eveonline.com/Corporation/1000010_64.png"}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"px128x128":{"description":"px128x128 string","title":"get_corporations_corporation_id_icons_px128x128","type":"string"},"px256x256":{"description":"px256x256 string","title":"get_corporations_corporation_id_icons_px256x256","type":"string"},"px64x64":{"description":"px64x64 string","title":"get_corporations_corporation_id_icons_px64x64","type":"string"}},"title":"get_corporations_corporation_id_icons_ok","type":"object"}},"404":{"description":"No image server for this datasource","examples":{"application/json":{"error":"No image server for this datasource"}},"schema":{"description":"No image server for this datasource","properties":{"error":{"description":"error message","title":"get_corporations_corporation_id_icons_error","type":"string"}},"title":"get_corporations_corporation_id_icons_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get corporation icon","tags":["Corporation"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/corporations/{corporation_id}/industry/jobs/":{"get":{"description":"List industry jobs run by a corporation\n\n---\n\nThis route is cached for up to 300 seconds","operationId":"get_corporations_corporation_id_industry_jobs","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"default":false,"description":"Whether retrieve completed industry jobs as well","in":"query","name":"include_completed","required":false,"type":"boolean"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of corporation industry jobs","examples":{"application/json":[{"activity_id":1,"blueprint_id":1015116533326,"blueprint_location_id":60006382,"blueprint_type_id":2047,"cost":118.0,"duration":548,"end_date":"2014-07-19T15:56:14Z","facility_id":60006382,"installer_id":498338451,"job_id":229136101,"licensed_runs":200,"location_id":60006382,"output_location_id":60006382,"runs":1,"start_date":"2014-07-19T15:47:06Z","status":"active"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"X-Pages":{"default":1,"description":"Maximum page number","format":"int32","type":"integer"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"activity_id":{"description":"Job activity ID","format":"int32","title":"get_corporations_corporation_id_industry_jobs_activity_id","type":"integer"},"blueprint_id":{"description":"blueprint_id integer","format":"int64","title":"get_corporations_corporation_id_industry_jobs_blueprint_id","type":"integer"},"blueprint_location_id":{"description":"Location ID of the location from which the blueprint was installed. Normally a station ID, but can also be an asset (e.g. container) or corporation facility","format":"int64","title":"get_corporations_corporation_id_industry_jobs_blueprint_location_id","type":"integer"},"blueprint_type_id":{"description":"blueprint_type_id integer","format":"int32","title":"get_corporations_corporation_id_industry_jobs_blueprint_type_id","type":"integer"},"completed_character_id":{"description":"ID of the character which completed this job","format":"int32","title":"get_corporations_corporation_id_industry_jobs_completed_character_id","type":"integer"},"completed_date":{"description":"Date and time when this job was completed","format":"date-time","title":"get_corporations_corporation_id_industry_jobs_completed_date","type":"string"},"cost":{"description":"The sume of job installation fee and industry facility tax","format":"float","title":"get_corporations_corporation_id_industry_jobs_cost","type":"number"},"duration":{"description":"Job duration in seconds","format":"int32","title":"get_corporations_corporation_id_industry_jobs_duration","type":"integer"},"end_date":{"description":"Date and time when this job finished","format":"date-time","title":"get_corporations_corporation_id_industry_jobs_end_date","type":"string"},"facility_id":{"description":"ID of the facility where this job is running","format":"int64","title":"get_corporations_corporation_id_industry_jobs_facility_id","type":"integer"},"installer_id":{"description":"ID of the character which installed this job","format":"int32","title":"get_corporations_corporation_id_industry_jobs_installer_id","type":"integer"},"job_id":{"description":"Unique job ID","format":"int32","title":"get_corporations_corporation_id_industry_jobs_job_id","type":"integer"},"licensed_runs":{"description":"Number of runs blueprint is licensed for","format":"int32","title":"get_corporations_corporation_id_industry_jobs_licensed_runs","type":"integer"},"location_id":{"description":"ID of the location for the industry facility","format":"int64","title":"get_corporations_corporation_id_industry_jobs_location_id","type":"integer"},"output_location_id":{"description":"Location ID of the location to which the output of the job will be delivered. Normally a station ID, but can also be a corporation facility","format":"int64","title":"get_corporations_corporation_id_industry_jobs_output_location_id","type":"integer"},"pause_date":{"description":"Date and time when this job was paused (i.e. time when the facility where this job was installed went offline)","format":"date-time","title":"get_corporations_corporation_id_industry_jobs_pause_date","type":"string"},"probability":{"description":"Chance of success for invention","format":"float","title":"get_corporations_corporation_id_industry_jobs_probability","type":"number"},"product_type_id":{"description":"Type ID of product (manufactured, copied or invented)","format":"int32","title":"get_corporations_corporation_id_industry_jobs_product_type_id","type":"integer"},"runs":{"description":"Number of runs for a manufacturing job, or number of copies to make for a blueprint copy","format":"int32","title":"get_corporations_corporation_id_industry_jobs_runs","type":"integer"},"start_date":{"description":"Date and time when this job started","format":"date-time","title":"get_corporations_corporation_id_industry_jobs_start_date","type":"string"},"status":{"description":"status string","enum":["active","paused","ready","delivered","cancelled","reverted"],"title":"get_corporations_corporation_id_industry_jobs_status","type":"string"},"successful_runs":{"description":"Number of successful runs for this job. Equal to runs unless this is an invention job","format":"int32","title":"get_corporations_corporation_id_industry_jobs_successful_runs","type":"integer"}},"required":["job_id","installer_id","facility_id","location_id","activity_id","blueprint_id","blueprint_type_id","blueprint_location_id","output_location_id","runs","status","duration","start_date","end_date"],"title":"get_corporations_corporation_id_industry_jobs_200_ok","type":"object"},"maxItems":1000,"title":"get_corporations_corporation_id_industry_jobs_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-industry.read_corporation_jobs.v1"]}],"summary":"List corporation industry jobs","tags":["Industry"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":300,"x-required-roles":["FactoryManager"]}},"/v1/corporations/{corporation_id}/killmails/recent/":{"get":{"description":"Get a list of corporation's recent kills and losses\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_killmails_recent","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"description":"Only return killmails with ID smaller than this","format":"int32","in":"query","name":"max_kill_id","required":false,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of killmail IDs and hashes","examples":{"application/json":[{"killmail_hash":"8eef5e8fb6b88fe3407c489df33822b2e3b57a5e","killmail_id":2},{"killmail_hash":"b41ccb498ece33d64019f64c0db392aa3aa701fb","killmail_id":1}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"killmail_hash":{"description":"A hash of this killmail","title":"get_corporations_corporation_id_killmails_recent_killmail_hash","type":"string"},"killmail_id":{"description":"ID of this killmail","format":"int32","title":"get_corporations_corporation_id_killmails_recent_killmail_id","type":"integer"}},"required":["killmail_id","killmail_hash"],"title":"get_corporations_corporation_id_killmails_recent_200_ok","type":"object"},"maxItems":1000,"title":"get_corporations_corporation_id_killmails_recent_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-killmails.read_corporation_killmails.v1"]}],"summary":"Get corporation kills and losses","tags":["Killmails"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600,"x-required-roles":["Director"]}},"/v1/corporations/{corporation_id}/members/limit/":{"get":{"description":"Return a corporation's member limit, not including CEO himself\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_members_limit","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"The corporation's member limit","examples":{"application/json":40},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok integer","format":"int32","title":"get_corporations_corporation_id_members_limit_ok","type":"integer"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-corporations.track_members.v1"]}],"summary":"Get corporation member limit","tags":["Corporation"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600,"x-required-roles":["Director"]}},"/v1/corporations/{corporation_id}/membertracking/":{"get":{"description":"Returns additional information about a corporation's members which helps tracking their activities\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_membertracking","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of member character IDs","examples":{"application/json":[{"character_id":2112000001,"location_id":30003657,"logoff_date":"2017-08-03T14:31:16Z","logon_date":"2017-08-03T14:22:03Z","ship_type_id":22464,"start_date":"2017-07-10T14:46:00Z"},{"character_id":2112000002,"location_id":30003657,"logoff_date":"2017-07-25T11:07:40Z","logon_date":"2017-07-25T10:54:00Z","ship_type_id":670,"start_date":"2017-07-10T14:50:00Z"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"base_id":{"description":"base_id integer","format":"int32","title":"get_corporations_corporation_id_membertracking_base_id","type":"integer"},"character_id":{"description":"character_id integer","format":"int32","title":"get_corporations_corporation_id_membertracking_character_id","type":"integer"},"location_id":{"description":"location_id integer","format":"int64","title":"get_corporations_corporation_id_membertracking_location_id","type":"integer"},"logoff_date":{"description":"logoff_date string","format":"date-time","title":"get_corporations_corporation_id_membertracking_logoff_date","type":"string"},"logon_date":{"description":"logon_date string","format":"date-time","title":"get_corporations_corporation_id_membertracking_logon_date","type":"string"},"ship_type_id":{"description":"ship_type_id integer","format":"int32","title":"get_corporations_corporation_id_membertracking_ship_type_id","type":"integer"},"start_date":{"description":"start_date string","format":"date-time","title":"get_corporations_corporation_id_membertracking_start_date","type":"string"}},"required":["character_id"],"title":"get_corporations_corporation_id_membertracking_200_ok","type":"object"},"maxItems":12601,"title":"get_corporations_corporation_id_membertracking_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-corporations.track_members.v1"]}],"summary":"Track corporation members","tags":["Corporation"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600,"x-required-roles":["Director"]}},"/v1/corporations/{corporation_id}/orders/":{"get":{"description":"List market orders placed on behalf of a corporation\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_orders","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of market orders","examples":{"application/json":[{"duration":30,"escrow":45.6,"is_buy_order":true,"issued":"2016-09-03T05:12:25Z","location_id":456,"min_volume":1,"order_id":123,"price":33.3,"range":"station","region_id":123,"state":"open","type_id":456,"volume_remain":4422,"volume_total":123456,"wallet_division":1}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"X-Pages":{"default":1,"description":"Maximum page number","format":"int32","type":"integer"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"duration":{"description":"Numer of days for which order is valid (starting from the issued date). An order expires at time issued + duration","format":"int32","title":"get_corporations_corporation_id_orders_duration","type":"integer"},"escrow":{"description":"For buy orders, the amount of ISK in escrow","format":"float","title":"get_corporations_corporation_id_orders_escrow","type":"number"},"is_buy_order":{"description":"True for a bid (buy) order. False for an offer (sell) order","title":"get_corporations_corporation_id_orders_is_buy_order","type":"boolean"},"issued":{"description":"Date and time when this order was issued","format":"date-time","title":"get_corporations_corporation_id_orders_issued","type":"string"},"location_id":{"description":"ID of the location where order was placed","format":"int64","title":"get_corporations_corporation_id_orders_location_id","type":"integer"},"min_volume":{"description":"For bids (buy orders), the minimum quantity that will be accepted in a matching offer (sell order)","format":"int32","title":"get_corporations_corporation_id_orders_min_volume","type":"integer"},"order_id":{"description":"Unique order ID","format":"int64","title":"get_corporations_corporation_id_orders_order_id","type":"integer"},"price":{"description":"Cost per unit for this order","format":"float","title":"get_corporations_corporation_id_orders_price","type":"number"},"range":{"description":"Valid order range, numbers are ranges in jumps","enum":["1","10","2","20","3","30","4","40","5","region","solarsystem","station"],"title":"get_corporations_corporation_id_orders_range","type":"string"},"region_id":{"description":"ID of the region where order was placed","format":"int32","title":"get_corporations_corporation_id_orders_region_id","type":"integer"},"state":{"description":"Current order state","enum":["cancelled","character_deleted","closed","expired","open","pending"],"title":"get_corporations_corporation_id_orders_state","type":"string"},"type_id":{"description":"The type ID of the item transacted in this order","format":"int32","title":"get_corporations_corporation_id_orders_type_id","type":"integer"},"volume_remain":{"description":"Quantity of items still required or offered","format":"int32","title":"get_corporations_corporation_id_orders_volume_remain","type":"integer"},"volume_total":{"description":"Quantity of items required or offered at time order was placed","format":"int32","title":"get_corporations_corporation_id_orders_volume_total","type":"integer"},"wallet_division":{"description":"Wallet division of which this order used","format":"int32","maximum":7,"minimum":1,"title":"get_corporations_corporation_id_orders_wallet_division","type":"integer"}},"required":["order_id","type_id","region_id","location_id","range","is_buy_order","price","volume_total","volume_remain","issued","state","min_volume","wallet_division","duration","escrow"],"title":"get_corporations_corporation_id_orders_200_ok","type":"object"},"maxItems":1000,"title":"get_corporations_corporation_id_orders_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-markets.read_corporation_orders.v1"]}],"summary":"List orders from a corporation","tags":["Market"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600,"x-required-roles":["Accountant","Trader"]}},"/v1/corporations/{corporation_id}/roles/":{"get":{"description":"Return the roles of all members if the character has the personnel manager role or any grantable role.\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_roles","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of member character ID's and roles","examples":{"application/json":[{"character_id":1000171,"roles":["Director","Station_Manager"]}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"character_id":{"description":"character_id integer","format":"int32","title":"get_corporations_corporation_id_roles_character_id","type":"integer"},"grantable_roles":{"description":"grantable_roles array","items":{"description":"grantable_role string","enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_roles_grantable_role","type":"string","uniqueItems":true},"maxItems":50,"title":"get_corporations_corporation_id_roles_grantable_roles","type":"array"},"grantable_roles_at_base":{"description":"grantable_roles_at_base array","items":{"description":"grantable_roles_at_base string","enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_roles_grantable_roles_at_base","type":"string","uniqueItems":true},"maxItems":50,"title":"get_corporations_corporation_id_roles_grantable_roles_at_base","type":"array"},"grantable_roles_at_hq":{"description":"grantable_roles_at_hq array","items":{"description":"grantable_roles_at_hq string","enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_roles_grantable_roles_at_hq","type":"string","uniqueItems":true},"maxItems":50,"title":"get_corporations_corporation_id_roles_grantable_roles_at_hq","type":"array"},"grantable_roles_at_other":{"description":"grantable_roles_at_other array","items":{"description":"grantable_roles_at_other string","enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_roles_grantable_roles_at_other","type":"string","uniqueItems":true},"maxItems":50,"title":"get_corporations_corporation_id_roles_grantable_roles_at_other","type":"array"},"roles":{"description":"roles array","items":{"description":"role string","enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_roles_role","type":"string","uniqueItems":true},"maxItems":50,"title":"get_corporations_corporation_id_roles_roles","type":"array"},"roles_at_base":{"description":"roles_at_base array","items":{"description":"roles_at_base string","enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_roles_roles_at_base","type":"string","uniqueItems":true},"maxItems":50,"title":"get_corporations_corporation_id_roles_roles_at_base","type":"array"},"roles_at_hq":{"description":"roles_at_hq array","items":{"description":"roles_at_hq string","enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_roles_roles_at_hq","type":"string","uniqueItems":true},"maxItems":50,"title":"get_corporations_corporation_id_roles_roles_at_hq","type":"array"},"roles_at_other":{"description":"roles_at_other array","items":{"description":"roles_at_other string","enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_roles_roles_at_other","type":"string","uniqueItems":true},"maxItems":50,"title":"get_corporations_corporation_id_roles_roles_at_other","type":"array"}},"required":["character_id"],"title":"get_corporations_corporation_id_roles_200_ok","type":"object"},"maxItems":12601,"title":"get_corporations_corporation_id_roles_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-corporations.read_corporation_membership.v1"]}],"summary":"Get corporation member roles","tags":["Corporation"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/corporations/{corporation_id}/shareholders/":{"get":{"description":"Return the current member list of a corporation, the token's character need to be a member of the corporation.\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_shareholders","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of member character IDs","examples":{"application/json":[{"share_count":580,"shareholder_id":98000001,"shareholder_type":"corporation"},{"share_count":20,"shareholder_id":2112000003,"shareholder_type":"character"},{"share_count":300,"shareholder_id":2112000004,"shareholder_type":"character"},{"share_count":100,"shareholder_id":2112000001,"shareholder_type":"character"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"X-Pages":{"default":1,"description":"Maximum page number","format":"int32","type":"integer"}},"schema":{"description":"A list of character IDs","items":{"description":"200 ok object","properties":{"share_count":{"description":"share_count integer","format":"int64","title":"get_corporations_corporation_id_shareholders_share_count","type":"integer"},"shareholder_id":{"description":"shareholder_id integer","format":"int32","title":"get_corporations_corporation_id_shareholders_shareholder_id","type":"integer"},"shareholder_type":{"description":"shareholder_type string","enum":["character","corporation"],"title":"get_corporations_corporation_id_shareholders_shareholder_type","type":"string"}},"required":["shareholder_id","shareholder_type","share_count"],"title":"get_corporations_corporation_id_shareholders_200_ok","type":"object"},"maxItems":1000,"title":"get_corporations_corporation_id_shareholders_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-wallet.read_corporation_wallets.v1"]}],"summary":"Get corporation members","tags":["Corporation"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/corporations/{corporation_id}/standings/":{"get":{"description":"Return corporation standings from agents, NPC corporations, and factions\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_standings","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of standings","examples":{"application/json":[{"from_id":3009841,"from_type":"agent","standing":0.1},{"from_id":1000061,"from_type":"npc_corp","standing":0},{"from_id":500003,"from_type":"faction","standing":-1}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"X-Pages":{"default":1,"description":"Maximum page number","format":"int32","type":"integer"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"from_id":{"description":"from_id integer","format":"int32","title":"get_corporations_corporation_id_standings_from_id","type":"integer"},"from_type":{"description":"from_type string","enum":["agent","npc_corp","faction"],"title":"get_corporations_corporation_id_standings_from_type","type":"string"},"standing":{"description":"standing number","format":"float","maximum":10,"minimum":-10,"title":"get_corporations_corporation_id_standings_standing","type":"number"}},"required":["from_id","from_type","standing"],"title":"get_corporations_corporation_id_standings_200_ok","type":"object"},"maxItems":1000,"title":"get_corporations_corporation_id_standings_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-corporations.read_standings.v1"]}],"summary":"Get corporation standings","tags":["Corporation"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600,"x-required-roles":[]}},"/v1/corporations/{corporation_id}/structures/":{"get":{"description":"Get a list of corporation structures\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_structures","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of corporation structures' information","examples":{"application/json":[{"corporation_id":667531913,"current_vul":[{"day":1,"hour":2}],"next_vul":[{"day":3,"hour":4}],"profile_id":11237,"structure_id":1021975535893,"system_id":30004763,"type_id":35833}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Content-Language":{"description":"The language used in the response","enum":["de","en-us","fr","ja","ru","zh"],"type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"corporation_id":{"description":"ID of the corporation that owns the structure","format":"int32","title":"get_corporations_corporation_id_structures_corporation_id","type":"integer"},"current_vul":{"description":"This week's vulnerability windows, Monday is day 0","items":{"description":"current_vul object","properties":{"day":{"description":"day integer","format":"int32","title":"get_corporations_corporation_id_structures_day","type":"integer"},"hour":{"description":"hour integer","format":"int32","title":"get_corporations_corporation_id_structures_hour","type":"integer"}},"required":["day","hour"],"title":"get_corporations_corporation_id_structures_current_vul","type":"object"},"maxItems":168,"title":"get_corporations_corporation_id_structures_current_vul","type":"array"},"fuel_expires":{"description":"Date on which the structure will run out of fuel","format":"date","title":"get_corporations_corporation_id_structures_fuel_expires","type":"string"},"next_vul":{"description":"Next week's vulnerability windows, Monday is day 0","items":{"description":"next_vul object","properties":{"day":{"description":"day integer","format":"int32","title":"get_corporations_corporation_id_structures_day","type":"integer"},"hour":{"description":"hour integer","format":"int32","title":"get_corporations_corporation_id_structures_hour","type":"integer"}},"required":["day","hour"],"title":"get_corporations_corporation_id_structures_next_vul","type":"object"},"maxItems":168,"title":"get_corporations_corporation_id_structures_next_vul","type":"array"},"profile_id":{"description":"The id of the ACL profile for this citadel","format":"int32","title":"get_corporations_corporation_id_structures_profile_id","type":"integer"},"services":{"description":"Contains a list of service upgrades, and their state","items":{"description":"service object","properties":{"name":{"description":"name string","title":"get_corporations_corporation_id_structures_name","type":"string"},"state":{"description":"state string","enum":["online","offline","cleanup"],"title":"get_corporations_corporation_id_structures_state","type":"string"}},"required":["name","state"],"title":"get_corporations_corporation_id_structures_service","type":"object"},"maxItems":10,"title":"get_corporations_corporation_id_structures_services","type":"array"},"state_timer_end":{"description":"Date at which the structure will move to it's next state","format":"date","title":"get_corporations_corporation_id_structures_state_timer_end","type":"string"},"state_timer_start":{"description":"Date at which the structure entered it's current state","format":"date","title":"get_corporations_corporation_id_structures_state_timer_start","type":"string"},"structure_id":{"description":"The Item ID of the structure","format":"int64","title":"get_corporations_corporation_id_structures_structure_id","type":"integer"},"system_id":{"description":"The solar system the structure is in","format":"int32","title":"get_corporations_corporation_id_structures_system_id","type":"integer"},"type_id":{"description":"The type id of the structure","format":"int32","title":"get_corporations_corporation_id_structures_type_id","type":"integer"},"unanchors_at":{"description":"Date at which the structure will unanchor","format":"date","title":"get_corporations_corporation_id_structures_unanchors_at","type":"string"}},"required":["structure_id","type_id","corporation_id","system_id","profile_id","current_vul","next_vul"],"title":"get_corporations_corporation_id_structures_200_ok","type":"object"},"maxItems":250,"title":"get_corporations_corporation_id_structures_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-corporations.read_structures.v1"]}],"summary":"Get corporation structures","tags":["Corporation"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/corporations/{corporation_id}/structures/{structure_id}/":{"put":{"description":"Update the vulnerability window schedule of a corporation structure\n\n---\n","operationId":"put_corporations_corporation_id_structures_structure_id","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"description":"New vulnerability window schedule for the structure","in":"body","name":"new_schedule","required":true,"schema":{"description":"new_schedule array","items":{"description":"new_schedule object","properties":{"day":{"description":"Day of the week, zero-indexed to Monday","format":"int32","maximum":6,"minimum":0,"title":"put_corporations_corporation_id_structures_structure_id_day","type":"integer"},"hour":{"description":"Hour of the day evetime, zero-indexed to midnight","format":"int32","maximum":23,"minimum":0,"title":"put_corporations_corporation_id_structures_structure_id_hour","type":"integer"}},"required":["day","hour"],"title":"put_corporations_corporation_id_structures_structure_id_new_schedule","type":"object"},"maxItems":168,"minItems":1,"title":"put_corporations_corporation_id_structures_structure_id_new_schedule","type":"array"}},{"description":"A structure ID","format":"int64","in":"path","name":"structure_id","required":true,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Structure vulnerability window updated"},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-corporations.write_structures.v1"]}],"summary":"Update structure vulnerability schedule","tags":["Corporation"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/titles/":{"get":{"description":"Returns a corporation's titles\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_titles","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of titles","examples":{"application/json":[{"name":"Awesome Title","roles":["Hangar_Take_6","Hangar_Query_2"],"title_id":1}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"grantable_roles":{"description":"grantable_roles array","items":{"description":"grantable_role string","enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_titles_grantable_role","type":"string","uniqueItems":true},"maxItems":50,"title":"get_corporations_corporation_id_titles_grantable_roles","type":"array"},"grantable_roles_at_base":{"description":"grantable_roles_at_base array","items":{"description":"grantable_roles_at_base string","enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_titles_grantable_roles_at_base","type":"string","uniqueItems":true},"maxItems":50,"title":"get_corporations_corporation_id_titles_grantable_roles_at_base","type":"array"},"grantable_roles_at_hq":{"description":"grantable_roles_at_hq array","items":{"description":"grantable_roles_at_hq string","enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_titles_grantable_roles_at_hq","type":"string","uniqueItems":true},"maxItems":50,"title":"get_corporations_corporation_id_titles_grantable_roles_at_hq","type":"array"},"grantable_roles_at_other":{"description":"grantable_roles_at_other array","items":{"description":"grantable_roles_at_other string","enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_titles_grantable_roles_at_other","type":"string","uniqueItems":true},"maxItems":50,"title":"get_corporations_corporation_id_titles_grantable_roles_at_other","type":"array"},"name":{"description":"name string","title":"get_corporations_corporation_id_titles_name","type":"string"},"roles":{"description":"roles array","items":{"description":"role string","enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_titles_role","type":"string","uniqueItems":true},"maxItems":50,"title":"get_corporations_corporation_id_titles_roles","type":"array"},"roles_at_base":{"description":"roles_at_base array","items":{"description":"roles_at_base string","enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_titles_roles_at_base","type":"string","uniqueItems":true},"maxItems":50,"title":"get_corporations_corporation_id_titles_roles_at_base","type":"array"},"roles_at_hq":{"description":"roles_at_hq array","items":{"description":"roles_at_hq string","enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_titles_roles_at_hq","type":"string","uniqueItems":true},"maxItems":50,"title":"get_corporations_corporation_id_titles_roles_at_hq","type":"array"},"roles_at_other":{"description":"roles_at_other array","items":{"description":"roles_at_other string","enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_titles_roles_at_other","type":"string","uniqueItems":true},"maxItems":50,"title":"get_corporations_corporation_id_titles_roles_at_other","type":"array"},"title_id":{"description":"title_id integer","format":"int32","title":"get_corporations_corporation_id_titles_title_id","type":"integer"}},"title":"get_corporations_corporation_id_titles_200_ok","type":"object"},"maxItems":16,"title":"get_corporations_corporation_id_titles_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-corporations.read_titles.v1"]}],"summary":"Get corporation titles","tags":["Corporation"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600,"x-required-roles":["Director"]}},"/v1/corporations/{corporation_id}/wallets/":{"get":{"description":"Get a corporation's wallets\n\n---\n\nThis route is cached for up to 300 seconds","operationId":"get_corporations_corporation_id_wallets","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of corporation wallets","examples":{"application/json":[{"balance":123.45,"division":1},{"balance":123.45,"division":2},{"balance":123.45,"division":3},{"balance":123.45,"division":4},{"balance":123.45,"division":5},{"balance":123.45,"division":6},{"balance":123.45,"division":7}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"balance":{"description":"balance number","format":"float","title":"get_corporations_corporation_id_wallets_balance","type":"number"},"division":{"description":"division integer","format":"int32","maximum":7,"minimum":1,"title":"get_corporations_corporation_id_wallets_division","type":"integer"}},"required":["division","balance"],"title":"get_corporations_corporation_id_wallets_200_ok","type":"object"},"maxItems":7,"title":"get_corporations_corporation_id_wallets_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-wallet.read_corporation_wallets.v1"]}],"summary":"Returns a corporation's wallet balance","tags":["Wallet"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":300}},"/v1/corporations/{corporation_id}/wallets/{division}/journal/":{"get":{"description":"Retrieve corporation wallet journal\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_wallets_division_journal","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"description":"Wallet key of the division to fetch journals from","format":"int32","in":"path","maximum":7,"minimum":1,"name":"division","required":true,"type":"integer"},{"description":"Only show journal entries happened before the transaction referenced by this id","format":"int64","in":"query","name":"from_id","required":false,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Journal entries","examples":{"application/json":[{"date":"2016-10-24T09:00:00Z","ref_id":1234567890,"ref_type":"player_trading"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"Journal entries","items":{"description":"200 ok object","properties":{"amount":{"description":"Transaction amount. Positive when value transferred to the first party. Negative otherwise","format":"float","title":"get_corporations_corporation_id_wallets_division_journal_amount","type":"number"},"balance":{"description":"Wallet balance after transaction occurred","format":"float","title":"get_corporations_corporation_id_wallets_division_journal_balance","type":"number"},"date":{"description":"Date and time of transaction","format":"date-time","title":"get_corporations_corporation_id_wallets_division_journal_date","type":"string"},"extra_info":{"description":"Extra information for different type of transaction","properties":{"alliance_id":{"description":"alliance_id integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_alliance_id","type":"integer"},"character_id":{"description":"character_id integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_character_id","type":"integer"},"contract_id":{"description":"contract_id integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_contract_id","type":"integer"},"corporation_id":{"description":"corporation_id integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_corporation_id","type":"integer"},"destroyed_ship_type_id":{"description":"destroyed_ship_type_id integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_destroyed_ship_type_id","type":"integer"},"job_id":{"description":"job_id integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_job_id","type":"integer"},"location_id":{"description":"location_id integer","format":"int64","title":"get_corporations_corporation_id_wallets_division_journal_location_id","type":"integer"},"npc_id":{"description":"npc_id integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_npc_id","type":"integer"},"npc_name":{"description":"npc_name string","title":"get_corporations_corporation_id_wallets_division_journal_npc_name","type":"string"},"planet_id":{"description":"planet_id integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_planet_id","type":"integer"},"system_id":{"description":"system_id integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_system_id","type":"integer"},"transaction_id":{"description":"transaction_id integer","format":"int64","title":"get_corporations_corporation_id_wallets_division_journal_transaction_id","type":"integer"}},"title":"get_corporations_corporation_id_wallets_division_journal_extra_info","type":"object"},"first_party_id":{"description":"first_party_id integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_first_party_id","type":"integer"},"first_party_type":{"description":"first_party_type string","enum":["character","corporation","alliance","faction"],"title":"get_corporations_corporation_id_wallets_division_journal_first_party_type","type":"string"},"reason":{"description":"reason string","title":"get_corporations_corporation_id_wallets_division_journal_reason","type":"string"},"ref_id":{"description":"Unique journal reference ID","format":"int64","title":"get_corporations_corporation_id_wallets_division_journal_ref_id","type":"integer"},"ref_type":{"description":"Transaction type, different type of transaction will populate different fields in `extra_info`","enum":["player_trading","market_transaction","gm_cash_transfer","mission_reward","clone_activation","inheritance","player_donation","corporation_payment","docking_fee","office_rental_fee","factory_slot_rental_fee","repair_bill","bounty","bounty_prize","insurance","mission_expiration","mission_completion","shares","courier_mission_escrow","mission_cost","agent_miscellaneous","lp_store","agent_location_services","agent_donation","agent_security_services","agent_mission_collateral_paid","agent_mission_collateral_refunded","agents_preward","agent_mission_reward","agent_mission_time_bonus_reward","cspa","cspaofflinerefund","corporation_account_withdrawal","corporation_dividend_payment","corporation_registration_fee","corporation_logo_change_cost","release_of_impounded_property","market_escrow","agent_services_rendered","market_fine_paid","corporation_liquidation","brokers_fee","corporation_bulk_payment","alliance_registration_fee","war_fee","alliance_maintainance_fee","contraband_fine","clone_transfer","acceleration_gate_fee","transaction_tax","jump_clone_installation_fee","manufacturing","researching_technology","researching_time_productivity","researching_material_productivity","copying","reverse_engineering","contract_auction_bid","contract_auction_bid_refund","contract_collateral","contract_reward_refund","contract_auction_sold","contract_reward","contract_collateral_refund","contract_collateral_payout","contract_price","contract_brokers_fee","contract_sales_tax","contract_deposit","contract_deposit_sales_tax","contract_auction_bid_corp","contract_collateral_deposited_corp","contract_price_payment_corp","contract_brokers_fee_corp","contract_deposit_corp","contract_deposit_refund","contract_reward_deposited","contract_reward_deposited_corp","bounty_prizes","advertisement_listing_fee","medal_creation","medal_issued","dna_modification_fee","sovereignity_bill","bounty_prize_corporation_tax","agent_mission_reward_corporation_tax","agent_mission_time_bonus_reward_corporation_tax","upkeep_adjustment_fee","planetary_import_tax","planetary_export_tax","planetary_construction","corporate_reward_payout","bounty_surcharge","contract_reversal","corporate_reward_tax","store_purchase","store_purchase_refund","datacore_fee","war_fee_surrender","war_ally_contract","bounty_reimbursement","kill_right_fee","security_processing_fee","industry_job_tax","infrastructure_hub_maintenance","asset_safety_recovery_tax","opportunity_reward","project_discovery_reward","project_discovery_tax","reprocessing_tax","jump_clone_activation_fee","operation_bonus"],"title":"get_corporations_corporation_id_wallets_division_journal_ref_type","type":"string"},"second_party_id":{"description":"second_party_id integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_second_party_id","type":"integer"},"second_party_type":{"description":"second_party_type string","enum":["character","corporation","alliance","faction"],"title":"get_corporations_corporation_id_wallets_division_journal_second_party_type","type":"string"},"tax":{"description":"Tax amount received for tax related transactions","format":"float","title":"get_corporations_corporation_id_wallets_division_journal_tax","type":"number"},"tax_reciever_id":{"description":"the corporation ID receiving any tax paid","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_tax_reciever_id","type":"integer"}},"required":["date","ref_id","ref_type"],"title":"get_corporations_corporation_id_wallets_division_journal_200_ok","type":"object"},"maxItems":2500,"title":"get_corporations_corporation_id_wallets_division_journal_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-wallet.read_corporation_wallets.v1"]}],"summary":"Get corporation wallet journal","tags":["Wallet"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/corporations/{corporation_id}/wallets/{division}/transactions/":{"get":{"description":"Get wallet transactions of a corporation\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_wallets_division_transactions","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"description":"Wallet key of the division to fetch journals from","format":"int32","in":"path","maximum":7,"minimum":1,"name":"division","required":true,"type":"integer"},{"description":"Only show journal entries happened before the transaction referenced by this id","format":"int64","in":"query","name":"from_id","required":false,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Wallet transactions","examples":{"application/json":[{"client_id":54321,"date":"2016-10-24T09:00:00Z","is_buy":true,"journal_ref_id":67890,"location_id":60014719,"quantity":1,"transaction_id":1234567890,"type_id":587,"unit_price":1}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"Wallet transactions","items":{"description":"wallet transaction","properties":{"client_id":{"description":"client_id integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_transactions_client_id","type":"integer"},"date":{"description":"Date and time of transaction","format":"date-time","title":"get_corporations_corporation_id_wallets_division_transactions_date","type":"string"},"is_buy":{"description":"is_buy boolean","title":"get_corporations_corporation_id_wallets_division_transactions_is_buy","type":"boolean"},"journal_ref_id":{"description":"journal_ref_id integer","format":"int64","title":"get_corporations_corporation_id_wallets_division_transactions_journal_ref_id","type":"integer"},"location_id":{"description":"location_id integer","format":"int64","title":"get_corporations_corporation_id_wallets_division_transactions_location_id","type":"integer"},"quantity":{"description":"quantity integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_transactions_quantity","type":"integer"},"transaction_id":{"description":"Unique transaction ID","format":"int64","title":"get_corporations_corporation_id_wallets_division_transactions_transaction_id","type":"integer"},"type_id":{"description":"type_id integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_transactions_type_id","type":"integer"},"unit_price":{"description":"Amount paid per unit","format":"float","title":"get_corporations_corporation_id_wallets_division_transactions_unit_price","type":"number"}},"required":["transaction_id","date","location_id","type_id","unit_price","quantity","client_id","is_buy","journal_ref_id"],"title":"get_corporations_corporation_id_wallets_division_transactions_200_ok","type":"object"},"maxItems":2500,"title":"get_corporations_corporation_id_wallets_division_transactions_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-wallet.read_corporation_wallets.v1"]}],"summary":"Get corporation wallet transactions","tags":["Wallet"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/dogma/attributes/":{"get":{"description":"Get a list of dogma attribute ids\n\n---\n\nThis route expires daily at 11:05","operationId":"get_dogma_attributes","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of dogma attribute ids","examples":{"application/json":[1,2,3]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok integer","format":"int32","title":"get_dogma_attributes_200_ok","type":"integer"},"maxItems":10000,"title":"get_dogma_attributes_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get attributes","tags":["Dogma"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/dogma/attributes/{attribute_id}/":{"get":{"description":"Get information on a dogma attribute\n\n---\n\nThis route expires daily at 11:05","operationId":"get_dogma_attributes_attribute_id","parameters":[{"description":"A dogma attribute ID","format":"int32","in":"path","name":"attribute_id","required":true,"type":"integer"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a dogma attribute","examples":{"application/json":{"attribute_id":20,"default_value":1,"description":"Factor by which topspeed increases.","display_name":"Maximum Velocity Bonus","high_is_good":true,"icon_id":1389,"name":"speedFactor","published":true,"unit_id":124}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"attribute_id":{"description":"attribute_id integer","format":"int32","title":"get_dogma_attributes_attribute_id_attribute_id","type":"integer"},"default_value":{"description":"default_value number","format":"float","title":"get_dogma_attributes_attribute_id_default_value","type":"number"},"description":{"description":"description string","title":"get_dogma_attributes_attribute_id_description","type":"string"},"display_name":{"description":"display_name string","title":"get_dogma_attributes_attribute_id_display_name","type":"string"},"high_is_good":{"description":"high_is_good boolean","title":"get_dogma_attributes_attribute_id_high_is_good","type":"boolean"},"icon_id":{"description":"icon_id integer","format":"int32","title":"get_dogma_attributes_attribute_id_icon_id","type":"integer"},"name":{"description":"name string","title":"get_dogma_attributes_attribute_id_name","type":"string"},"published":{"description":"published boolean","title":"get_dogma_attributes_attribute_id_published","type":"boolean"},"stackable":{"description":"stackable boolean","title":"get_dogma_attributes_attribute_id_stackable","type":"boolean"},"unit_id":{"description":"unit_id integer","format":"int32","title":"get_dogma_attributes_attribute_id_unit_id","type":"integer"}},"required":["attribute_id"],"title":"get_dogma_attributes_attribute_id_ok","type":"object"}},"404":{"description":"Dogma attribute not found","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_dogma_attributes_attribute_id_404_not_found","type":"string"}},"title":"get_dogma_attributes_attribute_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get attribute information","tags":["Dogma"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/dogma/effects/":{"get":{"description":"Get a list of dogma effect ids\n\n---\n\nThis route expires daily at 11:05","operationId":"get_dogma_effects","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of dogma effect ids","examples":{"application/json":[1,2,3]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok integer","format":"int32","title":"get_dogma_effects_200_ok","type":"integer"},"maxItems":10000,"title":"get_dogma_effects_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get effects","tags":["Dogma"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/fleets/{fleet_id}/":{"get":{"description":"Return details about a fleet\n\n---\n\nThis route is cached for up to 5 seconds","operationId":"get_fleets_fleet_id","parameters":[{"$ref":"#/parameters/datasource"},{"description":"ID for a fleet","format":"int64","in":"path","name":"fleet_id","required":true,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Details about a fleet","examples":{"application/json":{"is_free_move":false,"is_registered":false,"is_voice_enabled":false,"motd":"This is an awesome fleet!"}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"is_free_move":{"description":"Is free-move enabled","title":"get_fleets_fleet_id_is_free_move","type":"boolean"},"is_registered":{"description":"Does the fleet have an active fleet advertisement","title":"get_fleets_fleet_id_is_registered","type":"boolean"},"is_voice_enabled":{"description":"Is EVE Voice enabled","title":"get_fleets_fleet_id_is_voice_enabled","type":"boolean"},"motd":{"description":"Fleet MOTD in CCP flavoured HTML","title":"get_fleets_fleet_id_motd","type":"string"}},"required":["motd","is_free_move","is_registered","is_voice_enabled"],"title":"get_fleets_fleet_id_ok","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"404":{"description":"The fleet does not exist or you don't have access to it","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_fleets_fleet_id_404_not_found","type":"string"}},"title":"get_fleets_fleet_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-fleets.read_fleet.v1"]}],"summary":"Get fleet information","tags":["Fleets"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":5},"put":{"description":"Update settings about a fleet\n\n---\n","operationId":"put_fleets_fleet_id","parameters":[{"$ref":"#/parameters/datasource"},{"description":"ID for a fleet","format":"int64","in":"path","name":"fleet_id","required":true,"type":"integer"},{"description":"What to update for this fleet","in":"body","name":"new_settings","required":true,"schema":{"description":"new_settings object","properties":{"is_free_move":{"description":"Should free-move be enabled in the fleet","title":"put_fleets_fleet_id_is_free_move","type":"boolean"},"motd":{"description":"New fleet MOTD in CCP flavoured HTML","title":"put_fleets_fleet_id_motd","type":"string"}},"title":"put_fleets_fleet_id_new_settings","type":"object"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Fleet updated"},"400":{"description":"Invalid request body","examples":{"application/json":{"error":"Bad request message"}},"schema":{"description":"Bad request","properties":{"error":{"description":"Bad request message","title":"put_fleets_fleet_id_400_bad_request","type":"string"}},"title":"put_fleets_fleet_id_bad_request","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"404":{"description":"The fleet does not exist or you don't have access to it","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"put_fleets_fleet_id_404_not_found","type":"string"}},"title":"put_fleets_fleet_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-fleets.write_fleet.v1"]}],"summary":"Update fleet","tags":["Fleets"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/fleets/{fleet_id}/members/":{"get":{"description":"Return information about fleet members\n\n---\n\nThis route is cached for up to 5 seconds","operationId":"get_fleets_fleet_id_members","parameters":[{"$ref":"#/parameters/datasource"},{"description":"ID for a fleet","format":"int64","in":"path","name":"fleet_id","required":true,"type":"integer"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of fleet members","examples":{"application/json":[{"character_id":93265215,"join_time":"2016-04-29T12:34:56Z","role":"squad_commander","role_name":"Squad Commander (Boss)","ship_type_id":33328,"solar_system_id":30003729,"squad_id":3129411261968,"station_id":61000180,"takes_fleet_warp":true,"wing_id":2073711261968}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Content-Language":{"description":"The language used in the response","enum":["de","en-us","fr","ja","ru","zh"],"type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"character_id":{"description":"character_id integer","format":"int32","title":"get_fleets_fleet_id_members_character_id","type":"integer"},"join_time":{"description":"join_time string","format":"date-time","title":"get_fleets_fleet_id_members_join_time","type":"string"},"role":{"description":"Member\u2019s role in fleet","enum":["fleet_commander","wing_commander","squad_commander","squad_member"],"title":"get_fleets_fleet_id_members_role","type":"string"},"role_name":{"description":"Localized role names","title":"get_fleets_fleet_id_members_role_name","type":"string"},"ship_type_id":{"description":"ship_type_id integer","format":"int32","title":"get_fleets_fleet_id_members_ship_type_id","type":"integer"},"solar_system_id":{"description":"Solar system the member is located in","format":"int32","title":"get_fleets_fleet_id_members_solar_system_id","type":"integer"},"squad_id":{"description":"ID of the squad the member is in. If not applicable, will be set to -1","format":"int64","title":"get_fleets_fleet_id_members_squad_id","type":"integer"},"station_id":{"description":"Station in which the member is docked in, if applicable","format":"int64","title":"get_fleets_fleet_id_members_station_id","type":"integer"},"takes_fleet_warp":{"description":"Whether the member take fleet warps","title":"get_fleets_fleet_id_members_takes_fleet_warp","type":"boolean"},"wing_id":{"description":"ID of the wing the member is in. If not applicable, will be set to -1","format":"int64","title":"get_fleets_fleet_id_members_wing_id","type":"integer"}},"required":["character_id","ship_type_id","wing_id","squad_id","role","role_name","join_time","takes_fleet_warp","solar_system_id"],"title":"get_fleets_fleet_id_members_200_ok","type":"object"},"maxItems":256,"title":"get_fleets_fleet_id_members_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"404":{"description":"The fleet does not exist or you don't have access to it","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_fleets_fleet_id_members_404_not_found","type":"string"}},"title":"get_fleets_fleet_id_members_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-fleets.read_fleet.v1"]}],"summary":"Get fleet members","tags":["Fleets"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":5},"post":{"description":"Invite a character into the fleet. If a character has a CSPA charge set it is not possible to invite them to the fleet using ESI\n\n---\n","operationId":"post_fleets_fleet_id_members","parameters":[{"$ref":"#/parameters/datasource"},{"description":"ID for a fleet","format":"int64","in":"path","name":"fleet_id","required":true,"type":"integer"},{"description":"Details of the invitation","in":"body","name":"invitation","required":true,"schema":{"description":"invitation object","properties":{"character_id":{"description":"The character you want to invite","format":"int32","title":"post_fleets_fleet_id_members_character_id","type":"integer"},"role":{"description":"If a character is invited with the `fleet_commander` role, neither `wing_id` or `squad_id` should be specified. If a character is invited with the `wing_commander` role, only `wing_id` should be specified. If a character is invited with the `squad_commander` role, both `wing_id` and `squad_id` should be specified. If a character is invited with the `squad_member` role, `wing_id` and `squad_id` should either both be specified or not specified at all. If they aren\u2019t specified, the invited character will join any squad with available positions.","enum":["fleet_commander","wing_commander","squad_commander","squad_member"],"title":"post_fleets_fleet_id_members_role","type":"string"},"squad_id":{"description":"squad_id integer","format":"int64","minimum":0,"title":"post_fleets_fleet_id_members_squad_id","type":"integer"},"wing_id":{"description":"wing_id integer","format":"int64","minimum":0,"title":"post_fleets_fleet_id_members_wing_id","type":"integer"}},"required":["character_id","role"],"title":"post_fleets_fleet_id_members_invitation","type":"object"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Fleet invitation sent"},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"404":{"description":"The fleet does not exist or you don't have access to it","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"post_fleets_fleet_id_members_404_not_found","type":"string"}},"title":"post_fleets_fleet_id_members_not_found","type":"object"}},"422":{"description":"Errors in invitation","examples":{"application/json":{"error":"missing wing_id"}},"schema":{"description":"422 unprocessable entity object","properties":{"error":{"description":"error message","title":"post_fleets_fleet_id_members_error","type":"string"}},"title":"post_fleets_fleet_id_members_unprocessable_entity","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-fleets.write_fleet.v1"]}],"summary":"Create fleet invitation","tags":["Fleets"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/fleets/{fleet_id}/members/{member_id}/":{"delete":{"description":"Kick a fleet member\n\n---\n","operationId":"delete_fleets_fleet_id_members_member_id","parameters":[{"$ref":"#/parameters/datasource"},{"description":"ID for a fleet","format":"int64","in":"path","name":"fleet_id","required":true,"type":"integer"},{"description":"The character ID of a member in this fleet","format":"int32","in":"path","name":"member_id","required":true,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Fleet member kicked"},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"404":{"description":"The fleet does not exist or you don't have access to it","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"delete_fleets_fleet_id_members_member_id_404_not_found","type":"string"}},"title":"delete_fleets_fleet_id_members_member_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-fleets.write_fleet.v1"]}],"summary":"Kick fleet member","tags":["Fleets"],"x-alternate-versions":["dev","legacy","v1"]},"put":{"description":"Move a fleet member around\n\n---\n","operationId":"put_fleets_fleet_id_members_member_id","parameters":[{"$ref":"#/parameters/datasource"},{"description":"ID for a fleet","format":"int64","in":"path","name":"fleet_id","required":true,"type":"integer"},{"description":"The character ID of a member in this fleet","format":"int32","in":"path","name":"member_id","required":true,"type":"integer"},{"description":"Details of the invitation","in":"body","name":"movement","required":true,"schema":{"description":"movement object","properties":{"role":{"description":"If a character is moved to the `fleet_commander` role, neither `wing_id` or `squad_id` should be specified. If a character is moved to the `wing_commander` role, only `wing_id` should be specified. If a character is moved to the `squad_commander` role, both `wing_id` and `squad_id` should be specified. If a character is moved to the `squad_member` role, both `wing_id` and `squad_id` should be specified.","enum":["fleet_commander","wing_commander","squad_commander","squad_member"],"title":"put_fleets_fleet_id_members_member_id_role","type":"string"},"squad_id":{"description":"squad_id integer","format":"int64","minimum":0,"title":"put_fleets_fleet_id_members_member_id_squad_id","type":"integer"},"wing_id":{"description":"wing_id integer","format":"int64","minimum":0,"title":"put_fleets_fleet_id_members_member_id_wing_id","type":"integer"}},"required":["role"],"title":"put_fleets_fleet_id_members_member_id_movement","type":"object"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Fleet invitation sent"},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"404":{"description":"The fleet does not exist or you don't have access to it","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"put_fleets_fleet_id_members_member_id_404_not_found","type":"string"}},"title":"put_fleets_fleet_id_members_member_id_not_found","type":"object"}},"422":{"description":"Errors in invitation","examples":{"application/json":{"error":"missing wing_id"}},"schema":{"description":"422 unprocessable entity object","properties":{"error":{"description":"error message","title":"put_fleets_fleet_id_members_member_id_error","type":"string"}},"title":"put_fleets_fleet_id_members_member_id_unprocessable_entity","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-fleets.write_fleet.v1"]}],"summary":"Move fleet member","tags":["Fleets"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/fleets/{fleet_id}/squads/{squad_id}/":{"delete":{"description":"Delete a fleet squad, only empty squads can be deleted\n\n---\n","operationId":"delete_fleets_fleet_id_squads_squad_id","parameters":[{"$ref":"#/parameters/datasource"},{"description":"ID for a fleet","format":"int64","in":"path","name":"fleet_id","required":true,"type":"integer"},{"description":"The squad to delete","format":"int64","in":"path","name":"squad_id","required":true,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Squad deleted"},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"404":{"description":"The fleet does not exist or you don't have access to it","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"delete_fleets_fleet_id_squads_squad_id_404_not_found","type":"string"}},"title":"delete_fleets_fleet_id_squads_squad_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-fleets.write_fleet.v1"]}],"summary":"Delete fleet squad","tags":["Fleets"],"x-alternate-versions":["dev","legacy","v1"]},"put":{"description":"Rename a fleet squad\n\n---\n","operationId":"put_fleets_fleet_id_squads_squad_id","parameters":[{"$ref":"#/parameters/datasource"},{"description":"ID for a fleet","format":"int64","in":"path","name":"fleet_id","required":true,"type":"integer"},{"description":"New name of the squad","in":"body","name":"naming","required":true,"schema":{"description":"naming object","properties":{"name":{"description":"name string","maxLength":10,"title":"put_fleets_fleet_id_squads_squad_id_name","type":"string"}},"required":["name"],"title":"put_fleets_fleet_id_squads_squad_id_naming","type":"object"}},{"description":"The squad to rename","format":"int64","in":"path","name":"squad_id","required":true,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Squad renamed"},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"404":{"description":"The fleet does not exist or you don't have access to it","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"put_fleets_fleet_id_squads_squad_id_404_not_found","type":"string"}},"title":"put_fleets_fleet_id_squads_squad_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-fleets.write_fleet.v1"]}],"summary":"Rename fleet squad","tags":["Fleets"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/fleets/{fleet_id}/wings/":{"get":{"description":"Return information about wings in a fleet\n\n---\n\nThis route is cached for up to 5 seconds","operationId":"get_fleets_fleet_id_wings","parameters":[{"$ref":"#/parameters/datasource"},{"description":"ID for a fleet","format":"int64","in":"path","name":"fleet_id","required":true,"type":"integer"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of fleet wings","examples":{"application/json":[{"id":2073711261968,"name":"Wing 1","squads":[{"id":3129411261968,"name":"Squad 1"}]}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Content-Language":{"description":"The language used in the response","enum":["de","en-us","fr","ja","ru","zh"],"type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"id":{"description":"id integer","format":"int64","title":"get_fleets_fleet_id_wings_id","type":"integer"},"name":{"description":"name string","title":"get_fleets_fleet_id_wings_name","type":"string"},"squads":{"description":"squads array","items":{"description":"squad object","properties":{"id":{"description":"id integer","format":"int64","title":"get_fleets_fleet_id_wings_id","type":"integer"},"name":{"description":"name string","title":"get_fleets_fleet_id_wings_name","type":"string"}},"required":["name","id"],"title":"get_fleets_fleet_id_wings_squad","type":"object"},"maxItems":25,"title":"get_fleets_fleet_id_wings_squads","type":"array"}},"required":["name","id","squads"],"title":"get_fleets_fleet_id_wings_200_ok","type":"object"},"maxItems":25,"title":"get_fleets_fleet_id_wings_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"404":{"description":"The fleet does not exist or you don't have access to it","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_fleets_fleet_id_wings_404_not_found","type":"string"}},"title":"get_fleets_fleet_id_wings_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-fleets.read_fleet.v1"]}],"summary":"Get fleet wings","tags":["Fleets"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":5},"post":{"description":"Create a new wing in a fleet\n\n---\n","operationId":"post_fleets_fleet_id_wings","parameters":[{"$ref":"#/parameters/datasource"},{"description":"ID for a fleet","format":"int64","in":"path","name":"fleet_id","required":true,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"201":{"description":"Wing created","examples":{"application/json":{"wing_id":123}},"schema":{"description":"201 created object","properties":{"wing_id":{"description":"The wing_id of the newly created wing","format":"int64","title":"post_fleets_fleet_id_wings_wing_id","type":"integer"}},"required":["wing_id"],"title":"post_fleets_fleet_id_wings_created","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"404":{"description":"The fleet does not exist or you don't have access to it","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"post_fleets_fleet_id_wings_404_not_found","type":"string"}},"title":"post_fleets_fleet_id_wings_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-fleets.write_fleet.v1"]}],"summary":"Create fleet wing","tags":["Fleets"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/fleets/{fleet_id}/wings/{wing_id}/":{"delete":{"description":"Delete a fleet wing, only empty wings can be deleted. The wing may contain squads, but the squads must be empty\n\n---\n","operationId":"delete_fleets_fleet_id_wings_wing_id","parameters":[{"$ref":"#/parameters/datasource"},{"description":"ID for a fleet","format":"int64","in":"path","name":"fleet_id","required":true,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"description":"The wing to delete","format":"int64","in":"path","name":"wing_id","required":true,"type":"integer"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Wing deleted"},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"404":{"description":"The fleet does not exist or you don't have access to it","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"delete_fleets_fleet_id_wings_wing_id_404_not_found","type":"string"}},"title":"delete_fleets_fleet_id_wings_wing_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-fleets.write_fleet.v1"]}],"summary":"Delete fleet wing","tags":["Fleets"],"x-alternate-versions":["dev","legacy","v1"]},"put":{"description":"Rename a fleet wing\n\n---\n","operationId":"put_fleets_fleet_id_wings_wing_id","parameters":[{"$ref":"#/parameters/datasource"},{"description":"ID for a fleet","format":"int64","in":"path","name":"fleet_id","required":true,"type":"integer"},{"description":"New name of the wing","in":"body","name":"naming","required":true,"schema":{"description":"naming object","properties":{"name":{"description":"name string","maxLength":10,"title":"put_fleets_fleet_id_wings_wing_id_name","type":"string"}},"required":["name"],"title":"put_fleets_fleet_id_wings_wing_id_naming","type":"object"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"description":"The wing to rename","format":"int64","in":"path","name":"wing_id","required":true,"type":"integer"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Wing renamed"},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"404":{"description":"The fleet does not exist or you don't have access to it","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"put_fleets_fleet_id_wings_wing_id_404_not_found","type":"string"}},"title":"put_fleets_fleet_id_wings_wing_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-fleets.write_fleet.v1"]}],"summary":"Rename fleet wing","tags":["Fleets"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/fleets/{fleet_id}/wings/{wing_id}/squads/":{"post":{"description":"Create a new squad in a fleet\n\n---\n","operationId":"post_fleets_fleet_id_wings_wing_id_squads","parameters":[{"$ref":"#/parameters/datasource"},{"description":"ID for a fleet","format":"int64","in":"path","name":"fleet_id","required":true,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"description":"The wing_id to create squad in","format":"int64","in":"path","name":"wing_id","required":true,"type":"integer"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"201":{"description":"Squad created","examples":{"application/json":{"squad_id":123}},"schema":{"description":"201 created object","properties":{"squad_id":{"description":"The squad_id of the newly created squad","format":"int64","title":"post_fleets_fleet_id_wings_wing_id_squads_squad_id","type":"integer"}},"required":["squad_id"],"title":"post_fleets_fleet_id_wings_wing_id_squads_created","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"404":{"description":"The fleet does not exist or you don't have access to it","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"post_fleets_fleet_id_wings_wing_id_squads_404_not_found","type":"string"}},"title":"post_fleets_fleet_id_wings_wing_id_squads_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-fleets.write_fleet.v1"]}],"summary":"Create fleet squad","tags":["Fleets"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/fw/leaderboards/":{"get":{"description":"Top 4 leaderboard of factions for kills and victory points separated by total, last week and yesterday.\n\n---\n\nThis route expires daily at 11:05","operationId":"get_fw_leaderboards","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Corporation leaderboard of kills and victory points within faction warfare.","examples":{"application/json":{"kills":{"active_total":[{"amount":832273,"faction_id":500004},{"amount":687915,"faction_id":500001}],"last_week":[{"amount":730,"faction_id":500001},{"amount":671,"faction_id":500004}],"yesterday":[{"amount":100,"faction_id":500001},{"amount":50,"faction_id":500004}]},"victory_points":{"active_total":[{"amount":53130500,"faction_id":500001},{"amount":50964263,"faction_id":500004}],"last_week":[{"amount":97360,"faction_id":500001},{"amount":84980,"faction_id":500004}],"yesterday":[{"amount":5000,"faction_id":500002},{"amount":3500,"faction_id":500003}]}}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"kills":{"description":"Top 4 rankings of factions by number of kills from yesterday, last week and in total.","properties":{"active_total":{"description":"Top 4 ranking of factions active in faction warfare by total kills. A faction is considered \"active\" if they have participated in faction warfare in the past 14 days.","items":{"description":"active_total object","properties":{"amount":{"description":"Amount of kills","format":"int32","title":"get_fw_leaderboards_amount","type":"integer"},"faction_id":{"description":"faction_id integer","format":"int32","title":"get_fw_leaderboards_faction_id","type":"integer"}},"title":"get_fw_leaderboards_active_total","type":"object"},"maxItems":4,"title":"get_fw_leaderboards_active_total","type":"array"},"last_week":{"description":"Top 4 ranking of factions by kills in the past week","items":{"description":"last_week object","properties":{"amount":{"description":"Amount of kills","format":"int32","title":"get_fw_leaderboards_amount","type":"integer"},"faction_id":{"description":"faction_id integer","format":"int32","title":"get_fw_leaderboards_faction_id","type":"integer"}},"title":"get_fw_leaderboards_last_week","type":"object"},"maxItems":4,"title":"get_fw_leaderboards_last_week","type":"array"},"yesterday":{"description":"Top 4 ranking of factions by kills in the past day","items":{"description":"yesterday object","properties":{"amount":{"description":"Amount of kills","format":"int32","title":"get_fw_leaderboards_amount","type":"integer"},"faction_id":{"description":"faction_id integer","format":"int32","title":"get_fw_leaderboards_faction_id","type":"integer"}},"title":"get_fw_leaderboards_yesterday","type":"object"},"maxItems":4,"title":"get_fw_leaderboards_yesterday","type":"array"}},"required":["yesterday","last_week","active_total"],"title":"get_fw_leaderboards_kills","type":"object"},"victory_points":{"description":"Top 4 rankings of factions by victory points from yesterday, last week and in total","properties":{"active_total":{"description":"Top 4 ranking of factions active in faction warfare by total victory points. A faction is considered \"active\" if they have participated in faction warfare in the past 14 days.","items":{"description":"active_total object","properties":{"amount":{"description":"Amount of victory points","format":"int32","title":"get_fw_leaderboards_amount","type":"integer"},"faction_id":{"description":"faction_id integer","format":"int32","title":"get_fw_leaderboards_faction_id","type":"integer"}},"title":"get_fw_leaderboards_active_total","type":"object"},"maxItems":4,"title":"get_fw_leaderboards_active_total","type":"array"},"last_week":{"description":"Top 4 ranking of factions by victory points in the past week","items":{"description":"last_week object","properties":{"amount":{"description":"Amount of victory points","format":"int32","title":"get_fw_leaderboards_amount","type":"integer"},"faction_id":{"description":"faction_id integer","format":"int32","title":"get_fw_leaderboards_faction_id","type":"integer"}},"title":"get_fw_leaderboards_last_week","type":"object"},"maxItems":4,"title":"get_fw_leaderboards_last_week","type":"array"},"yesterday":{"description":"Top 4 ranking of factions by victory points in the past day","items":{"description":"yesterday object","properties":{"amount":{"description":"Amount of victory points","format":"int32","title":"get_fw_leaderboards_amount","type":"integer"},"faction_id":{"description":"faction_id integer","format":"int32","title":"get_fw_leaderboards_faction_id","type":"integer"}},"title":"get_fw_leaderboards_yesterday","type":"object"},"maxItems":4,"title":"get_fw_leaderboards_yesterday","type":"array"}},"required":["yesterday","last_week","active_total"],"title":"get_fw_leaderboards_victory_points","type":"object"}},"required":["kills","victory_points"],"title":"get_fw_leaderboards_ok","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"List of the top factions in faction warfare","tags":["Faction Warfare"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/fw/leaderboards/characters/":{"get":{"description":"Top 100 leaderboard of pilots for kills and victory points separated by total, last week and yesterday.\n\n---\n\nThis route expires daily at 11:05","operationId":"get_fw_leaderboards_characters","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Character leaderboard of kills and victory points within faction warfare.","examples":{"application/json":{"kills":{"active_total":[{"amount":10000,"character_id":2112625428},{"amount":8500,"character_id":95465499}],"last_week":[{"amount":100,"character_id":2112625428},{"amount":70,"character_id":95465499}],"yesterday":[{"amount":34,"character_id":2112625428},{"amount":20,"character_id":95465499}]},"victory_points":{"active_total":[{"amount":1239158,"character_id":2112625428},{"amount":1139029,"character_id":95465499}],"last_week":[{"amount":2660,"character_id":2112625428},{"amount":2000,"character_id":95465499}],"yesterday":[{"amount":620,"character_id":2112625428},{"amount":550,"character_id":95465499}]}}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"kills":{"description":"Top 100 rankings of pilots by number of kills from yesterday, last week and in total.","properties":{"active_total":{"description":"Top 100 ranking of pilots active in faction warfare by total kills. A pilot is considered \"active\" if they have participated in faction warfare in the past 14 days.","items":{"description":"active_total object","properties":{"amount":{"description":"Amount of kills","format":"int32","title":"get_fw_leaderboards_characters_amount","type":"integer"},"character_id":{"description":"character_id integer","format":"int32","title":"get_fw_leaderboards_characters_character_id","type":"integer"}},"title":"get_fw_leaderboards_characters_active_total","type":"object"},"maxItems":100,"title":"get_fw_leaderboards_characters_active_total","type":"array"},"last_week":{"description":"Top 100 ranking of pilots by kills in the past week","items":{"description":"last_week object","properties":{"amount":{"description":"Amount of kills","format":"int32","title":"get_fw_leaderboards_characters_amount","type":"integer"},"character_id":{"description":"character_id integer","format":"int32","title":"get_fw_leaderboards_characters_character_id","type":"integer"}},"title":"get_fw_leaderboards_characters_last_week","type":"object"},"maxItems":100,"title":"get_fw_leaderboards_characters_last_week","type":"array"},"yesterday":{"description":"Top 100 ranking of pilots by kills in the past day","items":{"description":"yesterday object","properties":{"amount":{"description":"Amount of kills","format":"int32","title":"get_fw_leaderboards_characters_amount","type":"integer"},"character_id":{"description":"character_id integer","format":"int32","title":"get_fw_leaderboards_characters_character_id","type":"integer"}},"title":"get_fw_leaderboards_characters_yesterday","type":"object"},"maxItems":100,"title":"get_fw_leaderboards_characters_yesterday","type":"array"}},"required":["yesterday","last_week","active_total"],"title":"get_fw_leaderboards_characters_kills","type":"object"},"victory_points":{"description":"Top 100 rankings of pilots by victory points from yesterday, last week and in total","properties":{"active_total":{"description":"Top 100 ranking of pilots active in faction warfare by total victory points. A pilot is considered \"active\" if they have participated in faction warfare in the past 14 days.","items":{"description":"active_total object","properties":{"amount":{"description":"Amount of victory points","format":"int32","title":"get_fw_leaderboards_characters_amount","type":"integer"},"character_id":{"description":"character_id integer","format":"int32","title":"get_fw_leaderboards_characters_character_id","type":"integer"}},"title":"get_fw_leaderboards_characters_active_total","type":"object"},"maxItems":100,"title":"get_fw_leaderboards_characters_active_total","type":"array"},"last_week":{"description":"Top 100 ranking of pilots by victory points in the past week","items":{"description":"last_week object","properties":{"amount":{"description":"Amount of victory points","format":"int32","title":"get_fw_leaderboards_characters_amount","type":"integer"},"character_id":{"description":"character_id integer","format":"int32","title":"get_fw_leaderboards_characters_character_id","type":"integer"}},"title":"get_fw_leaderboards_characters_last_week","type":"object"},"maxItems":100,"title":"get_fw_leaderboards_characters_last_week","type":"array"},"yesterday":{"description":"Top 100 ranking of pilots by victory points in the past day","items":{"description":"yesterday object","properties":{"amount":{"description":"Amount of victory points","format":"int32","title":"get_fw_leaderboards_characters_amount","type":"integer"},"character_id":{"description":"character_id integer","format":"int32","title":"get_fw_leaderboards_characters_character_id","type":"integer"}},"title":"get_fw_leaderboards_characters_yesterday","type":"object"},"maxItems":100,"title":"get_fw_leaderboards_characters_yesterday","type":"array"}},"required":["yesterday","last_week","active_total"],"title":"get_fw_leaderboards_characters_victory_points","type":"object"}},"required":["kills","victory_points"],"title":"get_fw_leaderboards_characters_ok","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"List of the top pilots in faction warfare","tags":["Faction Warfare"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/fw/leaderboards/corporations/":{"get":{"description":"Top 10 leaderboard of corporations for kills and victory points separated by total, last week and yesterday.\n\n---\n\nThis route expires daily at 11:05","operationId":"get_fw_leaderboards_corporations","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Corporation leaderboard of kills and victory points within faction warfare.","examples":{"application/json":{"kills":{"active_total":[{"amount":81692,"corporation_id":1000180},{"amount":76793,"corporation_id":1000182}],"last_week":[{"amount":290,"corporation_id":1000180},{"amount":169,"corporation_id":1000182}],"yesterday":[{"amount":51,"corporation_id":1000180},{"amount":39,"corporation_id":1000182}]},"victory_points":{"active_total":[{"amount":18640927,"corporation_id":1000180},{"amount":18078265,"corporation_id":1000181}],"last_week":[{"amount":91980,"corporation_id":1000180},{"amount":58920,"corporation_id":1000181}],"yesterday":[{"amount":12600,"corporation_id":1000180},{"amount":8240,"corporation_id":1000181}]}}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"kills":{"description":"Top 10 rankings of corporations by number of kills from yesterday, last week and in total.","properties":{"active_total":{"description":"Top 10 ranking of corporations active in faction warfare by total kills. A corporation is considered \"active\" if they have participated in faction warfare in the past 14 days.","items":{"description":"active_total object","properties":{"amount":{"description":"Amount of kills","format":"int32","title":"get_fw_leaderboards_corporations_amount","type":"integer"},"corporation_id":{"description":"corporation_id integer","format":"int32","title":"get_fw_leaderboards_corporations_corporation_id","type":"integer"}},"title":"get_fw_leaderboards_corporations_active_total","type":"object"},"maxItems":10,"title":"get_fw_leaderboards_corporations_active_total","type":"array"},"last_week":{"description":"Top 10 ranking of corporations by kills in the past week","items":{"description":"last_week object","properties":{"amount":{"description":"Amount of kills","format":"int32","title":"get_fw_leaderboards_corporations_amount","type":"integer"},"corporation_id":{"description":"corporation_id integer","format":"int32","title":"get_fw_leaderboards_corporations_corporation_id","type":"integer"}},"title":"get_fw_leaderboards_corporations_last_week","type":"object"},"maxItems":10,"title":"get_fw_leaderboards_corporations_last_week","type":"array"},"yesterday":{"description":"Top 10 ranking of corporations by kills in the past day","items":{"description":"yesterday object","properties":{"amount":{"description":"Amount of kills","format":"int32","title":"get_fw_leaderboards_corporations_amount","type":"integer"},"corporation_id":{"description":"corporation_id integer","format":"int32","title":"get_fw_leaderboards_corporations_corporation_id","type":"integer"}},"title":"get_fw_leaderboards_corporations_yesterday","type":"object"},"maxItems":10,"title":"get_fw_leaderboards_corporations_yesterday","type":"array"}},"required":["yesterday","last_week","active_total"],"title":"get_fw_leaderboards_corporations_kills","type":"object"},"victory_points":{"description":"Top 10 rankings of corporations by victory points from yesterday, last week and in total","properties":{"active_total":{"description":"Top 10 ranking of corporations active in faction warfare by total victory points. A corporation is considered \"active\" if they have participated in faction warfare in the past 14 days.","items":{"description":"active_total object","properties":{"amount":{"description":"Amount of victory points","format":"int32","title":"get_fw_leaderboards_corporations_amount","type":"integer"},"corporation_id":{"description":"corporation_id integer","format":"int32","title":"get_fw_leaderboards_corporations_corporation_id","type":"integer"}},"title":"get_fw_leaderboards_corporations_active_total","type":"object"},"maxItems":10,"title":"get_fw_leaderboards_corporations_active_total","type":"array"},"last_week":{"description":"Top 10 ranking of corporations by victory points in the past week","items":{"description":"last_week object","properties":{"amount":{"description":"Amount of victory points","format":"int32","title":"get_fw_leaderboards_corporations_amount","type":"integer"},"corporation_id":{"description":"corporation_id integer","format":"int32","title":"get_fw_leaderboards_corporations_corporation_id","type":"integer"}},"title":"get_fw_leaderboards_corporations_last_week","type":"object"},"maxItems":10,"title":"get_fw_leaderboards_corporations_last_week","type":"array"},"yesterday":{"description":"Top 10 ranking of corporations by victory points in the past day","items":{"description":"yesterday object","properties":{"amount":{"description":"Amount of victory points","format":"int32","title":"get_fw_leaderboards_corporations_amount","type":"integer"},"corporation_id":{"description":"corporation_id integer","format":"int32","title":"get_fw_leaderboards_corporations_corporation_id","type":"integer"}},"title":"get_fw_leaderboards_corporations_yesterday","type":"object"},"maxItems":10,"title":"get_fw_leaderboards_corporations_yesterday","type":"array"}},"required":["yesterday","last_week","active_total"],"title":"get_fw_leaderboards_corporations_victory_points","type":"object"}},"required":["kills","victory_points"],"title":"get_fw_leaderboards_corporations_ok","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"List of the top corporations in faction warfare","tags":["Faction Warfare"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/fw/stats/":{"get":{"description":"Statistical overviews of factions involved in faction warfare\n\n---\n\nThis route expires daily at 11:05","operationId":"get_fw_stats","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Per faction breakdown of faction warfare statistics","examples":{"application/json":[{"faction_id":500001,"kills":{"last_week":893,"total":684350,"yesterday":136},"pilots":28863,"systems_controlled":20,"victory_points":{"last_week":102640,"total":52658260,"yesterday":15980}}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"faction_id":{"description":"faction_id integer","format":"int32","title":"get_fw_stats_faction_id","type":"integer"},"kills":{"description":"Summary of kills against an enemy faction for the given faction","properties":{"last_week":{"description":"Last week's total number of kills against enemy factions","format":"int32","title":"get_fw_stats_last_week","type":"integer"},"total":{"description":"Total number of kills against enemy factions since faction warfare began","format":"int32","title":"get_fw_stats_total","type":"integer"},"yesterday":{"description":"Yesterday's total number of kills against enemy factions","format":"int32","title":"get_fw_stats_yesterday","type":"integer"}},"required":["yesterday","last_week","total"],"title":"get_fw_stats_kills","type":"object"},"pilots":{"description":"How many pilots fight for the given faction","format":"int32","title":"get_fw_stats_pilots","type":"integer"},"systems_controlled":{"description":"The number of solar systems controlled by the given faction","format":"int32","title":"get_fw_stats_systems_controlled","type":"integer"},"victory_points":{"description":"Summary of victory points gained for the given faction","properties":{"last_week":{"description":"Last week's victory points gained","format":"int32","title":"get_fw_stats_last_week","type":"integer"},"total":{"description":"Total victory points gained since faction warfare began","format":"int32","title":"get_fw_stats_total","type":"integer"},"yesterday":{"description":"Yesterday's victory points gained","format":"int32","title":"get_fw_stats_yesterday","type":"integer"}},"required":["yesterday","last_week","total"],"title":"get_fw_stats_victory_points","type":"object"}},"required":["faction_id","pilots","systems_controlled","kills","victory_points"],"title":"get_fw_stats_200_ok","type":"object"},"maxItems":4,"title":"get_fw_stats_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"An overview of statistics about factions involved in faction warfare","tags":["Faction Warfare"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/fw/systems/":{"get":{"description":"An overview of the current ownership of faction warfare solar systems\n\n---\n\nThis route is cached for up to 1800 seconds","operationId":"get_fw_systems","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"All faction war solar systems","examples":{"application/json":[{"contested":true,"occupier_faction_id":500001,"owner_faction_id":500001,"solar_system_id":30002096,"victory_points":60,"victory_points_threshold":3000}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"contested":{"description":"contested boolean","title":"get_fw_systems_contested","type":"boolean"},"occupier_faction_id":{"description":"occupier_faction_id integer","format":"int32","title":"get_fw_systems_occupier_faction_id","type":"integer"},"owner_faction_id":{"description":"owner_faction_id integer","format":"int32","title":"get_fw_systems_owner_faction_id","type":"integer"},"solar_system_id":{"description":"solar_system_id integer","format":"int32","title":"get_fw_systems_solar_system_id","type":"integer"},"victory_points":{"description":"victory_points integer","format":"int32","title":"get_fw_systems_victory_points","type":"integer"},"victory_points_threshold":{"description":"victory_points_threshold integer","format":"int32","title":"get_fw_systems_victory_points_threshold","type":"integer"}},"required":["solar_system_id","occupier_faction_id","owner_faction_id","victory_points","victory_points_threshold","contested"],"title":"get_fw_systems_200_ok","type":"object"},"maxItems":171,"title":"get_fw_systems_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Ownership of faction warfare systems","tags":["Faction Warfare"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":1800}},"/v1/fw/wars/":{"get":{"description":"Data about which NPC factions are at war\n\n---\n\nThis route expires daily at 11:05","operationId":"get_fw_wars","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of NPC factions at war","examples":{"application/json":[{"against_id":500002,"faction_id":500001}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"List of factions at war","items":{"description":"200 ok object","properties":{"against_id":{"description":"The faction ID of the enemy faction.","format":"int32","title":"get_fw_wars_against_id","type":"integer"},"faction_id":{"description":"faction_id integer","format":"int32","title":"get_fw_wars_faction_id","type":"integer"}},"required":["faction_id","against_id"],"title":"get_fw_wars_200_ok","type":"object"},"maxItems":8,"title":"get_fw_wars_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Data about which NPC factions are at war","tags":["Faction Warfare"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/incursions/":{"get":{"description":"Return a list of current incursions\n\n---\n\nThis route is cached for up to 300 seconds","operationId":"get_incursions","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of incursions","examples":{"application/json":[{"constellation_id":20000607,"faction_id":500019,"has_boss":true,"infested_solar_systems":[30004148,30004149,30004150,30004151,30004152,30004153,30004154],"influence":1.0,"staging_solar_system_id":30004154,"state":"mobilizing","type":"Incursion"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"constellation_id":{"description":"The constellation id in which this incursion takes place","format":"int32","title":"get_incursions_constellation_id","type":"integer"},"faction_id":{"description":"The attacking faction's id","format":"int32","title":"get_incursions_faction_id","type":"integer"},"has_boss":{"description":"Whether the final encounter has boss or not","title":"get_incursions_has_boss","type":"boolean"},"infested_solar_systems":{"description":"A list of infested solar system ids that are a part of this incursion","items":{"description":"infested_solar_system integer","format":"int32","title":"get_incursions_infested_solar_system","type":"integer"},"maxItems":100,"title":"get_incursions_infested_solar_systems","type":"array"},"influence":{"description":"Influence of this incursion as a float from 0 to 1","format":"float","title":"get_incursions_influence","type":"number"},"staging_solar_system_id":{"description":"Staging solar system for this incursion","format":"int32","title":"get_incursions_staging_solar_system_id","type":"integer"},"state":{"description":"The state of this incursion","enum":["withdrawing","mobilizing","established"],"title":"get_incursions_state","type":"string"},"type":{"description":"The type of this incursion","title":"get_incursions_type","type":"string"}},"required":["type","state","influence","has_boss","faction_id","constellation_id","staging_solar_system_id","infested_solar_systems"],"title":"get_incursions_200_ok","type":"object"},"maxItems":100,"title":"get_incursions_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"List incursions","tags":["Incursions"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":300}},"/v1/industry/facilities/":{"get":{"description":"Return a list of industry facilities\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_industry_facilities","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of facilities","examples":{"application/json":[{"facility_id":60012544,"owner_id":1000126,"region_id":10000001,"solar_system_id":30000032,"tax":0.1,"type_id":2502}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"facility_id":{"description":"ID of the facility","format":"int64","title":"get_industry_facilities_facility_id","type":"integer"},"owner_id":{"description":"Owner of the facility","format":"int32","title":"get_industry_facilities_owner_id","type":"integer"},"region_id":{"description":"Region ID where the facility is","format":"int32","title":"get_industry_facilities_region_id","type":"integer"},"solar_system_id":{"description":"Solar system ID where the facility is","format":"int32","title":"get_industry_facilities_solar_system_id","type":"integer"},"tax":{"description":"Tax imposed by the facility","format":"float","title":"get_industry_facilities_tax","type":"number"},"type_id":{"description":"Type ID of the facility","format":"int32","title":"get_industry_facilities_type_id","type":"integer"}},"required":["facility_id","owner_id","type_id","solar_system_id","region_id"],"title":"get_industry_facilities_200_ok","type":"object"},"maxItems":10000,"title":"get_industry_facilities_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"List industry facilities","tags":["Industry"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/industry/systems/":{"get":{"description":"Return cost indices for solar systems\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_industry_systems","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of cost indicies","examples":{"application/json":[{"cost_indices":[{"activity":"invention","cost_index":0.00480411064973412}],"solar_system_id":30011392}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"cost_indices":{"description":"cost_indices array","items":{"description":"cost_indice object","properties":{"activity":{"description":"activity string","enum":["none","manufacturing","researching_technology","researching_time_efficiency","researching_material_efficiency","copying","duplicating","invention","reverse_engineering"],"title":"get_industry_systems_activity","type":"string"},"cost_index":{"description":"cost_index number","format":"float","title":"get_industry_systems_cost_index","type":"number"}},"required":["activity","cost_index"],"title":"get_industry_systems_cost_indice","type":"object"},"maxItems":10,"title":"get_industry_systems_cost_indices","type":"array"},"solar_system_id":{"description":"solar_system_id integer","format":"int32","title":"get_industry_systems_solar_system_id","type":"integer"}},"required":["solar_system_id","cost_indices"],"title":"get_industry_systems_200_ok","type":"object"},"maxItems":10000,"title":"get_industry_systems_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"List solar system cost indices","tags":["Industry"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/insurance/prices/":{"get":{"description":"Return available insurance levels for all ship types\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_insurance_prices","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of insurance levels for all ship types","examples":{"application/json":[{"levels":[{"cost":10.0,"name":"Basic","payout":20.0}],"type_id":1}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Content-Language":{"description":"The language used in the response","enum":["de","en-us","fr","ja","ru","zh"],"type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"levels":{"description":"A list of a available insurance levels for this ship type","items":{"description":"level object","properties":{"cost":{"description":"cost number","format":"float","title":"get_insurance_prices_cost","type":"number"},"name":{"description":"Localized insurance level","title":"get_insurance_prices_name","type":"string"},"payout":{"description":"payout number","format":"float","title":"get_insurance_prices_payout","type":"number"}},"required":["cost","payout","name"],"title":"get_insurance_prices_level","type":"object"},"maxItems":6,"title":"get_insurance_prices_levels","type":"array"},"type_id":{"description":"type_id integer","format":"int32","title":"get_insurance_prices_type_id","type":"integer"}},"required":["type_id","levels"],"title":"get_insurance_prices_200_ok","type":"object"},"maxItems":1000,"title":"get_insurance_prices_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"List insurance levels","tags":["Insurance"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/killmails/{killmail_id}/{killmail_hash}/":{"get":{"description":"Return a single killmail from its ID and hash\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_killmails_killmail_id_killmail_hash","parameters":[{"$ref":"#/parameters/datasource"},{"description":"The killmail hash for verification","in":"path","name":"killmail_hash","required":true,"type":"string"},{"description":"The killmail ID to be queried","format":"int32","in":"path","name":"killmail_id","required":true,"type":"integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A killmail","examples":{"application/json":{"attackers":[{"character_id":95810944,"corporation_id":1000179,"damage_done":5745,"faction_id":500003,"final_blow":true,"security_status":-0.3,"ship_type_id":17841,"weapon_type_id":3074}],"killmail_id":56733821,"killmail_time":"2016-10-22T17:13:36Z","solar_system_id":30002976,"victim":{"alliance_id":621338554,"character_id":92796241,"corporation_id":841363671,"damage_taken":5745,"items":[{"flag":20,"item_type_id":5973,"quantity_dropped":1,"singleton":0}],"position":{"x":452186600569.4748,"y":146704961490.90222,"z":109514596532.54477},"ship_type_id":17812}}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"attackers":{"description":"attackers array","items":{"description":"attacker object","properties":{"alliance_id":{"description":"alliance_id integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_alliance_id","type":"integer"},"character_id":{"description":"character_id integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_character_id","type":"integer"},"corporation_id":{"description":"corporation_id integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_corporation_id","type":"integer"},"damage_done":{"description":"damage_done integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_damage_done","type":"integer"},"faction_id":{"description":"faction_id integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_faction_id","type":"integer"},"final_blow":{"description":"Was the attacker the one to achieve the final blow\n","title":"get_killmails_killmail_id_killmail_hash_final_blow","type":"boolean"},"security_status":{"description":"Security status for the attacker\n","format":"float","title":"get_killmails_killmail_id_killmail_hash_security_status","type":"number"},"ship_type_id":{"description":"What ship was the attacker flying\n","format":"int32","title":"get_killmails_killmail_id_killmail_hash_ship_type_id","type":"integer"},"weapon_type_id":{"description":"What weapon was used by the attacker for the kill\n","format":"int32","title":"get_killmails_killmail_id_killmail_hash_weapon_type_id","type":"integer"}},"required":["security_status","final_blow","damage_done"],"title":"get_killmails_killmail_id_killmail_hash_attacker","type":"object"},"maxItems":10000,"title":"get_killmails_killmail_id_killmail_hash_attackers","type":"array"},"killmail_id":{"description":"ID of the killmail","format":"int32","title":"get_killmails_killmail_id_killmail_hash_killmail_id","type":"integer"},"killmail_time":{"description":"Time that the victim was killed and the killmail generated\n","format":"date-time","title":"get_killmails_killmail_id_killmail_hash_killmail_time","type":"string"},"moon_id":{"description":"Moon if the kill took place at one","format":"int32","title":"get_killmails_killmail_id_killmail_hash_moon_id","type":"integer"},"solar_system_id":{"description":"Solar system that the kill took place in\n","format":"int32","title":"get_killmails_killmail_id_killmail_hash_solar_system_id","type":"integer"},"victim":{"description":"victim object","properties":{"alliance_id":{"description":"alliance_id integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_alliance_id","type":"integer"},"character_id":{"description":"character_id integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_character_id","type":"integer"},"corporation_id":{"description":"corporation_id integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_corporation_id","type":"integer"},"damage_taken":{"description":"How much total damage was taken by the victim\n","format":"int32","title":"get_killmails_killmail_id_killmail_hash_damage_taken","type":"integer"},"faction_id":{"description":"faction_id integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_faction_id","type":"integer"},"items":{"description":"items array","items":{"description":"item object","properties":{"flag":{"description":"Flag for the location of the item\n","format":"int32","title":"get_killmails_killmail_id_killmail_hash_flag","type":"integer"},"item_type_id":{"description":"item_type_id integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_item_type_id","type":"integer"},"items":{"description":"items array","items":{"description":"item object","properties":{"flag":{"description":"flag integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_flag","type":"integer"},"item_type_id":{"description":"item_type_id integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_item_type_id","type":"integer"},"quantity_destroyed":{"description":"quantity_destroyed integer","format":"int64","title":"get_killmails_killmail_id_killmail_hash_quantity_destroyed","type":"integer"},"quantity_dropped":{"description":"quantity_dropped integer","format":"int64","title":"get_killmails_killmail_id_killmail_hash_quantity_dropped","type":"integer"},"singleton":{"description":"singleton integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_singleton","type":"integer"}},"required":["item_type_id","singleton","flag"],"title":"get_killmails_killmail_id_killmail_hash_item","type":"object"},"maxItems":10000,"title":"get_killmails_killmail_id_killmail_hash_items","type":"array"},"quantity_destroyed":{"description":"How many of the item were destroyed if any\n","format":"int64","title":"get_killmails_killmail_id_killmail_hash_quantity_destroyed","type":"integer"},"quantity_dropped":{"description":"How many of the item were dropped if any\n","format":"int64","title":"get_killmails_killmail_id_killmail_hash_quantity_dropped","type":"integer"},"singleton":{"description":"singleton integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_singleton","type":"integer"}},"required":["item_type_id","singleton","flag"],"title":"get_killmails_killmail_id_killmail_hash_item","type":"object"},"maxItems":10000,"title":"get_killmails_killmail_id_killmail_hash_items","type":"array"},"position":{"description":"Coordinates of the victim in Cartesian space relative to the Sun\n","properties":{"x":{"description":"x number","format":"float","title":"get_killmails_killmail_id_killmail_hash_x","type":"number"},"y":{"description":"y number","format":"float","title":"get_killmails_killmail_id_killmail_hash_y","type":"number"},"z":{"description":"z number","format":"float","title":"get_killmails_killmail_id_killmail_hash_z","type":"number"}},"required":["x","y","z"],"title":"get_killmails_killmail_id_killmail_hash_position","type":"object"},"ship_type_id":{"description":"The ship that the victim was piloting and was destroyed\n","format":"int32","title":"get_killmails_killmail_id_killmail_hash_ship_type_id","type":"integer"}},"required":["damage_taken","ship_type_id"],"title":"get_killmails_killmail_id_killmail_hash_victim","type":"object"},"war_id":{"description":"War if the killmail is generated in relation to an official war\n","format":"int32","title":"get_killmails_killmail_id_killmail_hash_war_id","type":"integer"}},"required":["killmail_id","killmail_time","victim","attackers","solar_system_id"],"title":"get_killmails_killmail_id_killmail_hash_ok","type":"object"}},"422":{"description":"Invalid killmail_id and/or killmail_hash","examples":{"application/json":{"error":"Unprocessable entity message"}},"schema":{"description":"Unprocessable entity","properties":{"error":{"description":"Unprocessable entity message","title":"get_killmails_killmail_id_killmail_hash_422_unprocessable_entity","type":"string"}},"title":"get_killmails_killmail_id_killmail_hash_unprocessable_entity","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get a single killmail","tags":["Killmails"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/loyalty/stores/{corporation_id}/offers/":{"get":{"description":"Return a list of offers from a specific corporation's loyalty store\n\n---\n\nThis route expires daily at 11:05","operationId":"get_loyalty_stores_corporation_id_offers","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of offers","examples":{"application/json":[{"isk_cost":0,"lp_cost":100,"offer_id":1,"quantity":1,"required_items":[],"type_id":123},{"isk_cost":1000,"lp_cost":100,"offer_id":2,"quantity":10,"required_items":[{"quantity":10,"type_id":1234}],"type_id":1235}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"isk_cost":{"description":"isk_cost number","format":"int32","title":"get_loyalty_stores_corporation_id_offers_isk_cost","type":"number"},"lp_cost":{"description":"lp_cost integer","format":"int32","title":"get_loyalty_stores_corporation_id_offers_lp_cost","type":"integer"},"offer_id":{"description":"offer_id integer","format":"int32","title":"get_loyalty_stores_corporation_id_offers_offer_id","type":"integer"},"quantity":{"description":"quantity integer","format":"int32","title":"get_loyalty_stores_corporation_id_offers_quantity","type":"integer"},"required_items":{"description":"required_items array","items":{"description":"required_item object","properties":{"quantity":{"description":"quantity integer","format":"int32","title":"get_loyalty_stores_corporation_id_offers_quantity","type":"integer"},"type_id":{"description":"type_id integer","format":"int32","title":"get_loyalty_stores_corporation_id_offers_type_id","type":"integer"}},"required":["type_id","quantity"],"title":"get_loyalty_stores_corporation_id_offers_required_item","type":"object"},"maxItems":100,"title":"get_loyalty_stores_corporation_id_offers_required_items","type":"array"},"type_id":{"description":"type_id integer","format":"int32","title":"get_loyalty_stores_corporation_id_offers_type_id","type":"integer"}},"required":["offer_id","type_id","quantity","lp_cost","isk_cost","required_items"],"title":"get_loyalty_stores_corporation_id_offers_200_ok","type":"object"},"maxItems":10000,"title":"get_loyalty_stores_corporation_id_offers_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"List loyalty store offers","tags":["Loyalty"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/markets/groups/":{"get":{"description":"Get a list of item groups\n\n---\n\nThis route expires daily at 11:05","operationId":"get_markets_groups","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of item group ids","examples":{"application/json":[1,2,3]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok integer","format":"int32","title":"get_markets_groups_200_ok","type":"integer"},"maxItems":5000,"title":"get_markets_groups_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get item groups","tags":["Market"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/markets/groups/{market_group_id}/":{"get":{"description":"Get information on an item group\n\n---\n\nThis route expires daily at 11:05","operationId":"get_markets_groups_market_group_id","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"description":"An Eve item group ID","format":"int32","in":"path","name":"market_group_id","required":true,"type":"integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about an item group","examples":{"application/json":{"description":"Small, fast vessels suited to a variety of purposes.","market_group_id":5,"name":"Standard Frigates","parent_group_id":1361,"types":[582,583]}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Content-Language":{"description":"The language used in the response","enum":["de","en-us","fr","ja","ru","zh"],"type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"description":{"description":"description string","title":"get_markets_groups_market_group_id_description","type":"string"},"market_group_id":{"description":"market_group_id integer","format":"int32","title":"get_markets_groups_market_group_id_market_group_id","type":"integer"},"name":{"description":"name string","title":"get_markets_groups_market_group_id_name","type":"string"},"parent_group_id":{"description":"parent_group_id integer","format":"int32","title":"get_markets_groups_market_group_id_parent_group_id","type":"integer"},"types":{"description":"types array","items":{"description":"type integer","format":"int32","title":"get_markets_groups_market_group_id_type","type":"integer"},"maxItems":5000,"title":"get_markets_groups_market_group_id_types","type":"array"}},"required":["market_group_id","name","description","types"],"title":"get_markets_groups_market_group_id_ok","type":"object"}},"404":{"description":"Market group not found","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_markets_groups_market_group_id_404_not_found","type":"string"}},"title":"get_markets_groups_market_group_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get item group information","tags":["Market"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/markets/prices/":{"get":{"description":"Return a list of prices\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_markets_prices","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of prices","examples":{"application/json":[{"adjusted_price":306988.09,"average_price":306292.67,"type_id":32772}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"adjusted_price":{"description":"adjusted_price number","format":"float","title":"get_markets_prices_adjusted_price","type":"number"},"average_price":{"description":"average_price number","format":"float","title":"get_markets_prices_average_price","type":"number"},"type_id":{"description":"type_id integer","format":"int32","title":"get_markets_prices_type_id","type":"integer"}},"required":["type_id"],"title":"get_markets_prices_200_ok","type":"object"},"maxItems":20000,"title":"get_markets_prices_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"List market prices","tags":["Market"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/markets/structures/{structure_id}/":{"get":{"description":"Return all orders in a structure\n\n---\n\nThis route is cached for up to 300 seconds","operationId":"get_markets_structures_structure_id","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"description":"Return orders in this structure","format":"int64","in":"path","name":"structure_id","required":true,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of orders","examples":{"application/json":[{"duration":90,"is_buy_order":false,"issued":"2016-09-03T05:12:25Z","location_id":60005599,"min_volume":1,"order_id":4623824223,"price":9.9,"range":"region","type_id":34,"volume_remain":1296000,"volume_total":2000000}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"X-Pages":{"default":1,"description":"Maximum page number","format":"int32","type":"integer"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"duration":{"description":"duration integer","format":"int32","title":"get_markets_structures_structure_id_duration","type":"integer"},"is_buy_order":{"description":"is_buy_order boolean","title":"get_markets_structures_structure_id_is_buy_order","type":"boolean"},"issued":{"description":"issued string","format":"date-time","title":"get_markets_structures_structure_id_issued","type":"string"},"location_id":{"description":"location_id integer","format":"int64","title":"get_markets_structures_structure_id_location_id","type":"integer"},"min_volume":{"description":"min_volume integer","format":"int32","title":"get_markets_structures_structure_id_min_volume","type":"integer"},"order_id":{"description":"order_id integer","format":"int64","title":"get_markets_structures_structure_id_order_id","type":"integer"},"price":{"description":"price number","format":"float","title":"get_markets_structures_structure_id_price","type":"number"},"range":{"description":"range string","enum":["station","region","solarsystem","1","2","3","4","5","10","20","30","40"],"title":"get_markets_structures_structure_id_range","type":"string"},"type_id":{"description":"type_id integer","format":"int32","title":"get_markets_structures_structure_id_type_id","type":"integer"},"volume_remain":{"description":"volume_remain integer","format":"int32","title":"get_markets_structures_structure_id_volume_remain","type":"integer"},"volume_total":{"description":"volume_total integer","format":"int32","title":"get_markets_structures_structure_id_volume_total","type":"integer"}},"required":["order_id","type_id","location_id","volume_total","volume_remain","min_volume","price","is_buy_order","duration","issued","range"],"title":"get_markets_structures_structure_id_200_ok","type":"object"},"maxItems":5000,"title":"get_markets_structures_structure_id_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-markets.structure_markets.v1"]}],"summary":"List orders in a structure","tags":["Market"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":300}},"/v1/markets/{region_id}/history/":{"get":{"description":"Return a list of historical market statistics for the specified type in a region\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_markets_region_id_history","parameters":[{"$ref":"#/parameters/datasource"},{"description":"Return statistics in this region","format":"int32","in":"path","name":"region_id","required":true,"type":"integer"},{"description":"Return statistics for this type","format":"int32","in":"query","name":"type_id","required":true,"type":"integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of historical market statistics","examples":{"application/json":[{"average":5.25,"date":"2015-05-01","highest":5.27,"lowest":5.11,"order_count":2267,"volume":16276782035}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"average":{"description":"average number","format":"float","title":"get_markets_region_id_history_average","type":"number"},"date":{"description":"The date of this historical statistic entry","format":"date","title":"get_markets_region_id_history_date","type":"string"},"highest":{"description":"highest number","format":"float","title":"get_markets_region_id_history_highest","type":"number"},"lowest":{"description":"lowest number","format":"float","title":"get_markets_region_id_history_lowest","type":"number"},"order_count":{"description":"Total number of orders happened that day","format":"int64","title":"get_markets_region_id_history_order_count","type":"integer"},"volume":{"description":"Total","format":"int64","title":"get_markets_region_id_history_volume","type":"integer"}},"required":["date","order_count","volume","highest","average","lowest"],"title":"get_markets_region_id_history_200_ok","type":"object"},"maxItems":500,"title":"get_markets_region_id_history_ok","type":"array"}},"422":{"description":"Not found","examples":{"application/json":{"error":"Unprocessable entity message"}},"schema":{"description":"Unprocessable entity","properties":{"error":{"description":"Unprocessable entity message","title":"get_markets_region_id_history_422_unprocessable_entity","type":"string"}},"title":"get_markets_region_id_history_unprocessable_entity","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"List historical market statistics in a region","tags":["Market"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/markets/{region_id}/orders/":{"get":{"description":"Return a list of orders in a region\n\n---\n\nThis route is cached for up to 300 seconds","operationId":"get_markets_region_id_orders","parameters":[{"$ref":"#/parameters/datasource"},{"default":"all","description":"Filter buy/sell orders, return all orders by default. If you query without type_id, we always return both buy and sell orders.","enum":["buy","sell","all"],"in":"query","name":"order_type","required":true,"type":"string"},{"$ref":"#/parameters/page"},{"description":"Return orders in this region","format":"int32","in":"path","name":"region_id","required":true,"type":"integer"},{"description":"Return orders only for this type","format":"int32","in":"query","name":"type_id","required":false,"type":"integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of orders","examples":{"application/json":[{"duration":90,"is_buy_order":false,"issued":"2016-09-03T05:12:25Z","location_id":60005599,"min_volume":1,"order_id":4623824223,"price":9.9,"range":"region","type_id":34,"volume_remain":1296000,"volume_total":2000000}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"X-Pages":{"default":1,"description":"Maximum page number","format":"int32","type":"integer"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"duration":{"description":"duration integer","format":"int32","title":"get_markets_region_id_orders_duration","type":"integer"},"is_buy_order":{"description":"is_buy_order boolean","title":"get_markets_region_id_orders_is_buy_order","type":"boolean"},"issued":{"description":"issued string","format":"date-time","title":"get_markets_region_id_orders_issued","type":"string"},"location_id":{"description":"location_id integer","format":"int64","title":"get_markets_region_id_orders_location_id","type":"integer"},"min_volume":{"description":"min_volume integer","format":"int32","title":"get_markets_region_id_orders_min_volume","type":"integer"},"order_id":{"description":"order_id integer","format":"int64","title":"get_markets_region_id_orders_order_id","type":"integer"},"price":{"description":"price number","format":"float","title":"get_markets_region_id_orders_price","type":"number"},"range":{"description":"range string","enum":["station","region","solarsystem","1","2","3","4","5","10","20","30","40"],"title":"get_markets_region_id_orders_range","type":"string"},"type_id":{"description":"type_id integer","format":"int32","title":"get_markets_region_id_orders_type_id","type":"integer"},"volume_remain":{"description":"volume_remain integer","format":"int32","title":"get_markets_region_id_orders_volume_remain","type":"integer"},"volume_total":{"description":"volume_total integer","format":"int32","title":"get_markets_region_id_orders_volume_total","type":"integer"}},"required":["order_id","type_id","location_id","volume_total","volume_remain","min_volume","price","is_buy_order","duration","issued","range"],"title":"get_markets_region_id_orders_200_ok","type":"object"},"maxItems":10000,"title":"get_markets_region_id_orders_ok","type":"array"}},"422":{"description":"Not found","examples":{"application/json":{"error":"Unprocessable entity message"}},"schema":{"description":"Unprocessable entity","properties":{"error":{"description":"Unprocessable entity message","title":"get_markets_region_id_orders_422_unprocessable_entity","type":"string"}},"title":"get_markets_region_id_orders_unprocessable_entity","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"List orders in a region","tags":["Market"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":300}},"/v1/markets/{region_id}/types/":{"get":{"description":"Return a list of type IDs that have active orders in the region, for efficient market indexing.\n\n---\n\nThis route is cached for up to 600 seconds","operationId":"get_markets_region_id_types","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"description":"Return statistics in this region","format":"int32","in":"path","name":"region_id","required":true,"type":"integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of type IDs","examples":{"application/json":[587,593,597]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"X-Pages":{"default":1,"description":"Maximum page number","format":"int32","type":"integer"}},"schema":{"description":"200 ok array","items":{"description":"200 ok integer","format":"int32","title":"get_markets_region_id_types_200_ok","type":"integer"},"maxItems":1000,"title":"get_markets_region_id_types_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"List type IDs relevant to a market","tags":["Market"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":600}},"/v1/opportunities/groups/":{"get":{"description":"Return a list of opportunities groups\n\n---\n\nThis route expires daily at 11:05","operationId":"get_opportunities_groups","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of opportunities group ids","examples":{"application/json":[100,101,102,103]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok integer","format":"int32","title":"get_opportunities_groups_200_ok","type":"integer"},"maxItems":50,"title":"get_opportunities_groups_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get opportunities groups","tags":["Opportunities"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/opportunities/groups/{group_id}/":{"get":{"description":"Return information of an opportunities group\n\n---\n\nThis route expires daily at 11:05","operationId":"get_opportunities_groups_group_id","parameters":[{"$ref":"#/parameters/datasource"},{"description":"ID of an opportunities group","format":"int32","in":"path","name":"group_id","required":true,"type":"integer"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Details of an opportunities group","examples":{"application/json":{"connected_groups":[100],"description":"As a capsuleer...","group_id":103,"name":"Welcome to New Eden","notification":"Completed:
Welcome to New Eden","required_tasks":[19]}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Content-Language":{"description":"The language used in the response","enum":["de","en-us","fr","ja","ru","zh"],"type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"connected_groups":{"description":"The groups that are connected to this group on the opportunities map","items":{"description":"connected_group integer","format":"int32","title":"get_opportunities_groups_group_id_connected_group","type":"integer"},"maxItems":50,"title":"get_opportunities_groups_group_id_connected_groups","type":"array"},"description":{"description":"description string","title":"get_opportunities_groups_group_id_description","type":"string"},"group_id":{"description":"group_id integer","format":"int32","title":"get_opportunities_groups_group_id_group_id","type":"integer"},"name":{"description":"name string","title":"get_opportunities_groups_group_id_name","type":"string"},"notification":{"description":"notification string","title":"get_opportunities_groups_group_id_notification","type":"string"},"required_tasks":{"description":"Tasks need to complete for this group","items":{"description":"required_task integer","format":"int32","title":"get_opportunities_groups_group_id_required_task","type":"integer"},"maxItems":100,"title":"get_opportunities_groups_group_id_required_tasks","type":"array"}},"required":["group_id","name","description","notification","required_tasks","connected_groups"],"title":"get_opportunities_groups_group_id_ok","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get opportunities group","tags":["Opportunities"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/opportunities/tasks/":{"get":{"description":"Return a list of opportunities tasks\n\n---\n\nThis route expires daily at 11:05","operationId":"get_opportunities_tasks","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of opportunities task ids","examples":{"application/json":[1,2,3,4]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok integer","format":"int32","title":"get_opportunities_tasks_200_ok","type":"integer"},"maxItems":100,"title":"get_opportunities_tasks_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get opportunities tasks","tags":["Opportunities"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/opportunities/tasks/{task_id}/":{"get":{"description":"Return information of an opportunities task\n\n---\n\nThis route expires daily at 11:05","operationId":"get_opportunities_tasks_task_id","parameters":[{"$ref":"#/parameters/datasource"},{"description":"ID of an opportunities task","format":"int32","in":"path","name":"task_id","required":true,"type":"integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Details of an opportunities task","examples":{"application/json":{"description":"To use station services...","name":"Dock in the station","notification":"Completed:
Docked in a station!","task_id":10}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"description":{"description":"description string","title":"get_opportunities_tasks_task_id_description","type":"string"},"name":{"description":"name string","title":"get_opportunities_tasks_task_id_name","type":"string"},"notification":{"description":"notification string","title":"get_opportunities_tasks_task_id_notification","type":"string"},"task_id":{"description":"task_id integer","format":"int32","title":"get_opportunities_tasks_task_id_task_id","type":"integer"}},"required":["task_id","name","description","notification"],"title":"get_opportunities_tasks_task_id_ok","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get opportunities task","tags":["Opportunities"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/route/{origin}/{destination}/":{"get":{"description":"Get the systems between origin and destination\n\n---\n\nThis route is cached for up to 86400 seconds","operationId":"get_route_origin_destination","parameters":[{"description":"avoid solar system ID(s)","in":"query","items":{"format":"int32","type":"integer"},"maxItems":100,"name":"avoid","type":"array","uniqueItems":true},{"description":"connected solar system pairs","in":"query","items":{"collectionFormat":"pipes","items":{"format":"int32","type":"integer"},"maxItems":2,"minItems":2,"type":"array","uniqueItems":true},"maxItems":100,"name":"connections","type":"array","uniqueItems":true},{"$ref":"#/parameters/datasource"},{"description":"destination solar system ID","format":"int32","in":"path","name":"destination","required":true,"type":"integer"},{"default":"shortest","description":"route security preference","enum":["shortest","secure","insecure"],"in":"query","name":"flag","type":"string"},{"description":"origin solar system ID","format":"int32","in":"path","name":"origin","required":true,"type":"integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Solar systems in route from origin to destination","examples":{"application/json":[30002771,30002770,30002769,30002772]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"Solar systems in route","items":{"description":"Solar system in route","format":"int32","title":"Solar system ID","type":"integer"},"maxItems":1000,"title":"get_route_origin_destination_ok","type":"array"}},"404":{"description":"No route found","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_route_origin_destination_404_not_found","type":"string"}},"title":"get_route_origin_destination_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get route","tags":["Routes"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":86400}},"/v1/search/":{"get":{"description":"Search for entities that match a given sub-string.\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_search","parameters":[{"description":"Type of entities to search for","in":"query","items":{"enum":["agent","alliance","character","constellation","corporation","faction","inventorytype","region","solarsystem","station","wormhole"],"type":"string"},"maxItems":10,"minItems":1,"name":"categories","required":true,"type":"array","uniqueItems":true},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"description":"The string to search on","in":"query","minLength":3,"name":"search","required":true,"type":"string"},{"default":false,"description":"Whether the search should be a strict match","in":"query","name":"strict","type":"boolean"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of search results","examples":{"application/json":{"solarsystem":[30002510],"station":[60004588,60004594,60005725,60009106,60012721,60012724,60012727]}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Content-Language":{"description":"The language used in the response","enum":["de","en-us","fr","ja","ru","zh"],"type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"agent":{"description":"agent array","items":{"description":"agent integer","format":"int32","title":"get_search_agent","type":"integer"},"maxItems":500,"title":"get_search_agent","type":"array"},"alliance":{"description":"alliance array","items":{"description":"alliance integer","format":"int32","title":"get_search_alliance","type":"integer"},"maxItems":500,"title":"get_search_alliance","type":"array"},"character":{"description":"character array","items":{"description":"character integer","format":"int32","title":"get_search_character","type":"integer"},"maxItems":500,"title":"get_search_character","type":"array"},"constellation":{"description":"constellation array","items":{"description":"constellation integer","format":"int32","title":"get_search_constellation","type":"integer"},"maxItems":500,"title":"get_search_constellation","type":"array"},"corporation":{"description":"corporation array","items":{"description":"corporation integer","format":"int32","title":"get_search_corporation","type":"integer"},"maxItems":500,"title":"get_search_corporation","type":"array"},"faction":{"description":"faction array","items":{"description":"faction integer","format":"int32","title":"get_search_faction","type":"integer"},"maxItems":500,"title":"get_search_faction","type":"array"},"inventorytype":{"description":"inventorytype array","items":{"description":"inventorytype integer","format":"int32","title":"get_search_inventorytype","type":"integer"},"maxItems":500,"title":"get_search_inventorytype","type":"array"},"region":{"description":"region array","items":{"description":"region integer","format":"int32","title":"get_search_region","type":"integer"},"maxItems":500,"title":"get_search_region","type":"array"},"solarsystem":{"description":"solarsystem array","items":{"description":"solarsystem integer","format":"int32","title":"get_search_solarsystem","type":"integer"},"maxItems":500,"title":"get_search_solarsystem","type":"array"},"station":{"description":"station array","items":{"description":"station integer","format":"int32","title":"get_search_station","type":"integer"},"maxItems":500,"title":"get_search_station","type":"array"},"wormhole":{"description":"wormhole array","items":{"description":"wormhole integer","format":"int32","title":"get_search_wormhole","type":"integer"},"maxItems":500,"title":"get_search_wormhole","type":"array"}},"title":"get_search_ok","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Search on a string","tags":["Search"],"x-alternate-versions":["legacy","v1"],"x-cached-seconds":3600}},"/v1/sovereignty/campaigns/":{"get":{"description":"Shows sovereignty data for campaigns.\n\n---\n\nThis route is cached for up to 5 seconds","operationId":"get_sovereignty_campaigns","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of sovereignty campaigns","examples":{"application/json":[{"attackers_score":0.4,"campaign_id":32833,"constellation_id":20000125,"defender_id":1695357456,"defender_score":0.6,"event_type":"station_defense","solar_system_id":30000856,"start_time":"2016-10-29T14:34:40Z","structure_id":61001096}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"attackers_score":{"description":"Score for all attacking parties, only present in Defense Events.\n","format":"float","title":"get_sovereignty_campaigns_attackers_score","type":"number"},"campaign_id":{"description":"Unique ID for this campaign.","format":"int32","title":"get_sovereignty_campaigns_campaign_id","type":"integer"},"constellation_id":{"description":"The constellation in which the campaign will take place.\n","format":"int32","title":"get_sovereignty_campaigns_constellation_id","type":"integer"},"defender_id":{"description":"Defending alliance, only present in Defense Events\n","format":"int32","title":"get_sovereignty_campaigns_defender_id","type":"integer"},"defender_score":{"description":"Score for the defending alliance, only present in Defense Events.\n","format":"float","title":"get_sovereignty_campaigns_defender_score","type":"number"},"event_type":{"description":"Type of event this campaign is for. tcu_defense, ihub_defense and station_defense are referred to as \"Defense Events\", station_freeport as \"Freeport Events\".\n","enum":["tcu_defense","ihub_defense","station_defense","station_freeport"],"title":"get_sovereignty_campaigns_event_type","type":"string"},"participants":{"description":"Alliance participating and their respective scores, only present in Freeport Events.\n","items":{"description":"participant object","properties":{"alliance_id":{"description":"alliance_id integer","format":"int32","title":"get_sovereignty_campaigns_alliance_id","type":"integer"},"score":{"description":"score number","format":"float","title":"get_sovereignty_campaigns_score","type":"number"}},"required":["alliance_id","score"],"title":"get_sovereignty_campaigns_participant","type":"object"},"maxItems":5000,"title":"get_sovereignty_campaigns_participants","type":"array"},"solar_system_id":{"description":"The solar system the structure is located in.\n","format":"int32","title":"get_sovereignty_campaigns_solar_system_id","type":"integer"},"start_time":{"description":"Time the event is scheduled to start.\n","format":"date-time","title":"get_sovereignty_campaigns_start_time","type":"string"},"structure_id":{"description":"The structure item ID that is related to this campaign.\n","format":"int64","title":"get_sovereignty_campaigns_structure_id","type":"integer"}},"required":["campaign_id","structure_id","solar_system_id","constellation_id","event_type","start_time"],"title":"get_sovereignty_campaigns_200_ok","type":"object"},"maxItems":10000,"title":"get_sovereignty_campaigns_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"List sovereignty campaigns","tags":["Sovereignty"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":5}},"/v1/sovereignty/map/":{"get":{"description":"Shows sovereignty information for solar systems\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_sovereignty_map","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of sovereignty information for solar systems in New Eden","examples":{"application/json":[{"faction_id":500001,"system_id":30045334}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"alliance_id":{"description":"alliance_id integer","format":"int32","title":"get_sovereignty_map_alliance_id","type":"integer"},"corporation_id":{"description":"corporation_id integer","format":"int32","title":"get_sovereignty_map_corporation_id","type":"integer"},"faction_id":{"description":"faction_id integer","format":"int32","title":"get_sovereignty_map_faction_id","type":"integer"},"system_id":{"description":"system_id integer","format":"int32","title":"get_sovereignty_map_system_id","type":"integer"}},"required":["system_id"],"title":"get_sovereignty_map_200_ok","type":"object"},"maxItems":10000,"title":"get_sovereignty_map_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"List sovereignty of systems","tags":["Sovereignty"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/sovereignty/structures/":{"get":{"description":"Shows sovereignty data for structures.\n\n---\n\nThis route is cached for up to 120 seconds","operationId":"get_sovereignty_structures","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of sovereignty structures","examples":{"application/json":[{"alliance_id":498125261,"solar_system_id":30000570,"structure_id":1018253388776,"structure_type_id":32226,"vulnerability_occupancy_level":2,"vulnerable_end_time":"2016-10-29T05:30:00Z","vulnerable_start_time":"2016-10-28T20:30:00Z"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"alliance_id":{"description":"The alliance that owns the structure.\n","format":"int32","title":"get_sovereignty_structures_alliance_id","type":"integer"},"solar_system_id":{"description":"Solar system in which the structure is located.\n","format":"int32","title":"get_sovereignty_structures_solar_system_id","type":"integer"},"structure_id":{"description":"Unique item ID for this structure.","format":"int64","title":"get_sovereignty_structures_structure_id","type":"integer"},"structure_type_id":{"description":"A reference to the type of structure this is.\n","format":"int32","title":"get_sovereignty_structures_structure_type_id","type":"integer"},"vulnerability_occupancy_level":{"description":"The occupancy level for the next or current vulnerability window. This takes into account all development indexes and capital system bonuses. Also known as Activity Defense Multiplier from in the client. It increases the time that attackers must spend using their entosis links on the structure.\n","format":"float","title":"get_sovereignty_structures_vulnerability_occupancy_level","type":"number"},"vulnerable_end_time":{"description":"The time at which the next or current vulnerability window ends. At the end of a vulnerability window the next window is recalculated and locked in along with the vulnerabilityOccupancyLevel. If the structure is not in 100% entosis control of the defender, it will go in to 'overtime' and stay vulnerable for as long as that situation persists. Only once the defenders have 100% entosis control and has the vulnerableEndTime passed does the vulnerability interval expire and a new one is calculated.\n","format":"date-time","title":"get_sovereignty_structures_vulnerable_end_time","type":"string"},"vulnerable_start_time":{"description":"The next time at which the structure will become vulnerable. Or the start time of the current window if current time is between this and vulnerableEndTime.\n","format":"date-time","title":"get_sovereignty_structures_vulnerable_start_time","type":"string"}},"required":["alliance_id","solar_system_id","structure_id","structure_type_id"],"title":"get_sovereignty_structures_200_ok","type":"object"},"maxItems":10000,"title":"get_sovereignty_structures_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"List sovereignty structures","tags":["Sovereignty"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":120}},"/v1/status/":{"get":{"description":"EVE Server status\n\n---\n\nThis route is cached for up to 30 seconds","operationId":"get_status","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Server status","examples":{"application/json":{"players":12345,"server_version":"1132976","start_time":"2017-01-02T12:34:56Z"}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"players":{"description":"Current online player count","title":"get_status_players","type":"integer"},"server_version":{"description":"Running version as string","title":"get_status_server_version","type":"string"},"start_time":{"description":"Server start timestamp","format":"date-time","title":"get_status_start_time","type":"string"},"vip":{"description":"If the server is in VIP mode","title":"get_status_vip","type":"boolean"}},"required":["start_time","players","server_version"],"title":"get_status_ok","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Retrieve the uptime and player counts","tags":["Status"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":30}},"/v1/ui/openwindow/contract/":{"post":{"description":"Open the contract window inside the client\n\n---\n","operationId":"post_ui_openwindow_contract","parameters":[{"description":"The contract to open","format":"int32","in":"query","name":"contract_id","required":true,"type":"integer"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Open window request received"},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-ui.open_window.v1"]}],"summary":"Open Contract Window","tags":["User Interface"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/ui/openwindow/information/":{"post":{"description":"Open the information window for a character, corporation or alliance inside the client\n\n---\n","operationId":"post_ui_openwindow_information","parameters":[{"$ref":"#/parameters/datasource"},{"description":"The target to open","format":"int32","in":"query","name":"target_id","required":true,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Open window request received"},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-ui.open_window.v1"]}],"summary":"Open Information Window","tags":["User Interface"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/ui/openwindow/marketdetails/":{"post":{"description":"Open the market details window for a specific typeID inside the client\n\n---\n","operationId":"post_ui_openwindow_marketdetails","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"description":"The item type to open in market window","format":"int32","in":"query","name":"type_id","required":true,"type":"integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Open window request received"},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-ui.open_window.v1"]}],"summary":"Open Market Details","tags":["User Interface"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/ui/openwindow/newmail/":{"post":{"description":"Open the New Mail window, according to settings from the request if applicable\n\n---\n","operationId":"post_ui_openwindow_newmail","parameters":[{"$ref":"#/parameters/datasource"},{"description":"The details of mail to create","in":"body","name":"new_mail","required":true,"schema":{"description":"new_mail object","properties":{"body":{"description":"body string","maxLength":10000,"title":"post_ui_openwindow_newmail_body","type":"string"},"recipients":{"description":"recipients array","items":{"description":"recipient integer","format":"int32","title":"post_ui_openwindow_newmail_recipient","type":"integer"},"maxItems":50,"minItems":1,"title":"post_ui_openwindow_newmail_recipients","type":"array"},"subject":{"description":"subject string","maxLength":1000,"title":"post_ui_openwindow_newmail_subject","type":"string"},"to_corp_or_alliance_id":{"description":"to_corp_or_alliance_id integer","format":"int32","title":"post_ui_openwindow_newmail_to_corp_or_alliance_id","type":"integer"},"to_mailing_list_id":{"description":"Corporations, alliances and mailing lists are all types of mailing groups. You may only send to one mailing group, at a time, so you may fill out either this field or the to_corp_or_alliance_ids field","format":"int32","title":"post_ui_openwindow_newmail_to_mailing_list_id","type":"integer"}},"required":["subject","body","recipients"],"title":"post_ui_openwindow_newmail_new_mail","type":"object"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Open window request received"},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"422":{"description":"Invalid request","examples":{"application/json":{"error":"Unprocessable entity message"}},"schema":{"description":"Unprocessable entity","properties":{"error":{"description":"Unprocessable entity message","title":"post_ui_openwindow_newmail_422_unprocessable_entity","type":"string"}},"title":"post_ui_openwindow_newmail_unprocessable_entity","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-ui.open_window.v1"]}],"summary":"Open New Mail Window","tags":["User Interface"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/bloodlines/":{"get":{"description":"Get a list of bloodlines\n\n---\n\nThis route expires daily at 11:05","operationId":"get_universe_bloodlines","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of bloodlines","examples":{"application/json":[{"bloodline_id":1,"charisma":6,"corporation_id":1000006,"description":"The Deteis are regarded as ...","intelligence":7,"memory":7,"name":"Deteis","perception":5,"race_id":1,"ship_type_id":601,"willpower":5}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Content-Language":{"description":"The language used in the response","enum":["de","en-us","fr","ja","ru","zh"],"type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"bloodline_id":{"description":"bloodline_id integer","format":"int32","title":"get_universe_bloodlines_bloodline_id","type":"integer"},"charisma":{"description":"charisma integer","format":"int32","title":"get_universe_bloodlines_charisma","type":"integer"},"corporation_id":{"description":"corporation_id integer","format":"int32","title":"get_universe_bloodlines_corporation_id","type":"integer"},"description":{"description":"description string","title":"get_universe_bloodlines_description","type":"string"},"intelligence":{"description":"intelligence integer","format":"int32","title":"get_universe_bloodlines_intelligence","type":"integer"},"memory":{"description":"memory integer","format":"int32","title":"get_universe_bloodlines_memory","type":"integer"},"name":{"description":"name string","title":"get_universe_bloodlines_name","type":"string"},"perception":{"description":"perception integer","format":"int32","title":"get_universe_bloodlines_perception","type":"integer"},"race_id":{"description":"race_id integer","format":"int32","title":"get_universe_bloodlines_race_id","type":"integer"},"ship_type_id":{"description":"ship_type_id integer","format":"int32","title":"get_universe_bloodlines_ship_type_id","type":"integer"},"willpower":{"description":"willpower integer","format":"int32","title":"get_universe_bloodlines_willpower","type":"integer"}},"required":["bloodline_id","name","description","race_id","ship_type_id","corporation_id","perception","willpower","charisma","memory","intelligence"],"title":"get_universe_bloodlines_200_ok","type":"object"},"maxItems":100,"title":"get_universe_bloodlines_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get bloodlines","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/categories/":{"get":{"description":"Get a list of item categories\n\n---\n\nThis route expires daily at 11:05","operationId":"get_universe_categories","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of item category ids","examples":{"application/json":[1,2,3]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok integer","format":"int32","title":"get_universe_categories_200_ok","type":"integer"},"maxItems":10000,"title":"get_universe_categories_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get item categories","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/categories/{category_id}/":{"get":{"description":"Get information of an item category\n\n---\n\nThis route expires daily at 11:05","operationId":"get_universe_categories_category_id","parameters":[{"description":"An Eve item category ID","format":"int32","in":"path","name":"category_id","required":true,"type":"integer"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about an item category","examples":{"application/json":{"category_id":6,"groups":[25,26,27],"name":"Ship","published":true}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Content-Language":{"description":"The language used in the response","enum":["de","en-us","fr","ja","ru","zh"],"type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"category_id":{"description":"category_id integer","format":"int32","title":"get_universe_categories_category_id_category_id","type":"integer"},"groups":{"description":"groups array","items":{"description":"group integer","format":"int32","title":"get_universe_categories_category_id_group","type":"integer"},"maxItems":10000,"title":"get_universe_categories_category_id_groups","type":"array"},"name":{"description":"name string","title":"get_universe_categories_category_id_name","type":"string"},"published":{"description":"published boolean","title":"get_universe_categories_category_id_published","type":"boolean"}},"required":["category_id","name","published","groups"],"title":"get_universe_categories_category_id_ok","type":"object"}},"404":{"description":"Category not found","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_universe_categories_category_id_404_not_found","type":"string"}},"title":"get_universe_categories_category_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get item category information","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/constellations/":{"get":{"description":"Get a list of constellations\n\n---\n\nThis route expires daily at 11:05","operationId":"get_universe_constellations","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of constellation ids","examples":{"application/json":[20000001,20000002]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok integer","format":"int32","title":"get_universe_constellations_200_ok","type":"integer"},"maxItems":10000,"title":"get_universe_constellations_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get constellations","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/constellations/{constellation_id}/":{"get":{"description":"Get information on a constellation\n\n---\n\nThis route expires daily at 11:05","operationId":"get_universe_constellations_constellation_id","parameters":[{"description":"constellation_id integer","format":"int32","in":"path","name":"constellation_id","required":true,"type":"integer"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a constellation","examples":{"application/json":{"constellation_id":20000009,"name":"Mekashtad","position":{"x":67796138757472320,"y":-70591121348560960,"z":-59587016159270070},"region_id":10000001,"systems":[20000302,20000303]}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Content-Language":{"description":"The language used in the response","enum":["de","en-us","fr","ja","ru","zh"],"type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"constellation_id":{"description":"constellation_id integer","format":"int32","title":"get_universe_constellations_constellation_id_constellation_id","type":"integer"},"name":{"description":"name string","title":"get_universe_constellations_constellation_id_name","type":"string"},"position":{"description":"position object","properties":{"x":{"description":"x number","format":"float","title":"get_universe_constellations_constellation_id_x","type":"number"},"y":{"description":"y number","format":"float","title":"get_universe_constellations_constellation_id_y","type":"number"},"z":{"description":"z number","format":"float","title":"get_universe_constellations_constellation_id_z","type":"number"}},"required":["x","y","z"],"title":"get_universe_constellations_constellation_id_position","type":"object"},"region_id":{"description":"The region this constellation is in","format":"int32","title":"get_universe_constellations_constellation_id_region_id","type":"integer"},"systems":{"description":"systems array","items":{"description":"system integer","format":"int32","title":"get_universe_constellations_constellation_id_system","type":"integer"},"maxItems":10000,"title":"get_universe_constellations_constellation_id_systems","type":"array"}},"required":["constellation_id","name","position","region_id","systems"],"title":"get_universe_constellations_constellation_id_ok","type":"object"}},"404":{"description":"Constellation not found","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_universe_constellations_constellation_id_404_not_found","type":"string"}},"title":"get_universe_constellations_constellation_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get constellation information","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/factions/":{"get":{"description":"Get a list of factions\n\n---\n\nThis route expires daily at 11:05","operationId":"get_universe_factions","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of factions","examples":{"application/json":[{"corporation_id":456,"description":"blah blah","faction_id":1,"is_unique":true,"name":"Faction","size_factor":1.0,"solar_system_id":123,"station_count":1000,"station_system_count":100}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Content-Language":{"description":"The language used in the response","enum":["de","en-us","fr","ja","ru","zh"],"type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"corporation_id":{"description":"corporation_id integer","format":"int32","title":"get_universe_factions_corporation_id","type":"integer"},"description":{"description":"description string","title":"get_universe_factions_description","type":"string"},"faction_id":{"description":"faction_id integer","format":"int32","title":"get_universe_factions_faction_id","type":"integer"},"is_unique":{"description":"is_unique boolean","title":"get_universe_factions_is_unique","type":"boolean"},"militia_corporation_id":{"description":"militia_corporation_id integer","format":"int32","title":"get_universe_factions_militia_corporation_id","type":"integer"},"name":{"description":"name string","title":"get_universe_factions_name","type":"string"},"size_factor":{"description":"size_factor number","format":"float","title":"get_universe_factions_size_factor","type":"number"},"solar_system_id":{"description":"solar_system_id integer","format":"int32","title":"get_universe_factions_solar_system_id","type":"integer"},"station_count":{"description":"station_count integer","format":"int32","title":"get_universe_factions_station_count","type":"integer"},"station_system_count":{"description":"station_system_count integer","format":"int32","title":"get_universe_factions_station_system_count","type":"integer"}},"required":["faction_id","name","description","solar_system_id","corporation_id","size_factor","station_count","station_system_count","is_unique"],"title":"get_universe_factions_200_ok","type":"object"},"maxItems":10000,"title":"get_universe_factions_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get factions","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/graphics/":{"get":{"description":"Get a list of graphics\n\n---\n\nThis route expires daily at 11:05","operationId":"get_universe_graphics","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of graphic ids","examples":{"application/json":[10,4106]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok integer","format":"int32","title":"get_universe_graphics_200_ok","type":"integer"},"maxItems":10000,"title":"get_universe_graphics_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get graphics","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/graphics/{graphic_id}/":{"get":{"description":"Get information on a graphic\n\n---\n\nThis route expires daily at 11:05","operationId":"get_universe_graphics_graphic_id","parameters":[{"$ref":"#/parameters/datasource"},{"description":"graphic_id integer","format":"int32","in":"path","name":"graphic_id","required":true,"type":"integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a graphic","examples":{"application/json":{"graphic_file":"res:/dx9/model/worldobject/planet/moon.red","graphic_id":10}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"collision_file":{"description":"collision_file string","title":"get_universe_graphics_graphic_id_collision_file","type":"string"},"graphic_file":{"description":"graphic_file string","title":"get_universe_graphics_graphic_id_graphic_file","type":"string"},"graphic_id":{"description":"graphic_id integer","format":"int32","title":"get_universe_graphics_graphic_id_graphic_id","type":"integer"},"icon_folder":{"description":"icon_folder string","title":"get_universe_graphics_graphic_id_icon_folder","type":"string"},"sof_dna":{"description":"sof_dna string","title":"get_universe_graphics_graphic_id_sof_dna","type":"string"},"sof_fation_name":{"description":"sof_fation_name string","title":"get_universe_graphics_graphic_id_sof_fation_name","type":"string"},"sof_hull_name":{"description":"sof_hull_name string","title":"get_universe_graphics_graphic_id_sof_hull_name","type":"string"},"sof_race_name":{"description":"sof_race_name string","title":"get_universe_graphics_graphic_id_sof_race_name","type":"string"}},"required":["graphic_id"],"title":"get_universe_graphics_graphic_id_ok","type":"object"}},"404":{"description":"Graphic not found","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_universe_graphics_graphic_id_404_not_found","type":"string"}},"title":"get_universe_graphics_graphic_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get graphic information","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/groups/":{"get":{"description":"Get a list of item groups\n\n---\n\nThis route expires daily at 11:05","operationId":"get_universe_groups","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of item group ids","examples":{"application/json":[1,2,3]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"X-Pages":{"default":1,"description":"Maximum page number","format":"int32","type":"integer"}},"schema":{"description":"200 ok array","items":{"description":"200 ok integer","format":"int32","title":"get_universe_groups_200_ok","type":"integer"},"maxItems":1000,"title":"get_universe_groups_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get item groups","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/groups/{group_id}/":{"get":{"description":"Get information on an item group\n\n---\n\nThis route expires daily at 11:05","operationId":"get_universe_groups_group_id","parameters":[{"$ref":"#/parameters/datasource"},{"description":"An Eve item group ID","format":"int32","in":"path","name":"group_id","required":true,"type":"integer"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about an item group","examples":{"application/json":{"category_id":6,"group_id":25,"name":"Frigate","published":true,"types":[587,586,585]}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Content-Language":{"description":"The language used in the response","enum":["de","en-us","fr","ja","ru","zh"],"type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"category_id":{"description":"category_id integer","format":"int32","title":"get_universe_groups_group_id_category_id","type":"integer"},"group_id":{"description":"group_id integer","format":"int32","title":"get_universe_groups_group_id_group_id","type":"integer"},"name":{"description":"name string","title":"get_universe_groups_group_id_name","type":"string"},"published":{"description":"published boolean","title":"get_universe_groups_group_id_published","type":"boolean"},"types":{"description":"types array","items":{"description":"type integer","format":"int32","title":"get_universe_groups_group_id_type","type":"integer"},"maxItems":10000,"title":"get_universe_groups_group_id_types","type":"array"}},"required":["group_id","name","published","category_id","types"],"title":"get_universe_groups_group_id_ok","type":"object"}},"404":{"description":"Group not found","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_universe_groups_group_id_404_not_found","type":"string"}},"title":"get_universe_groups_group_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get item group information","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/moons/{moon_id}/":{"get":{"description":"Get information on a moon\n\n---\n\nThis route expires daily at 11:05","operationId":"get_universe_moons_moon_id","parameters":[{"$ref":"#/parameters/datasource"},{"description":"moon_id integer","format":"int32","in":"path","name":"moon_id","required":true,"type":"integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a moon","examples":{"application/json":{"moon_id":40000042,"name":"Akpivem I - Moon 1","position":{"x":58605102008,"y":-3066616285,"z":-55193617920},"system_id":30000003}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"moon_id":{"description":"moon_id integer","format":"int32","title":"get_universe_moons_moon_id_moon_id","type":"integer"},"name":{"description":"name string","title":"get_universe_moons_moon_id_name","type":"string"},"position":{"description":"position object","properties":{"x":{"description":"x number","format":"float","title":"get_universe_moons_moon_id_x","type":"number"},"y":{"description":"y number","format":"float","title":"get_universe_moons_moon_id_y","type":"number"},"z":{"description":"z number","format":"float","title":"get_universe_moons_moon_id_z","type":"number"}},"required":["x","y","z"],"title":"get_universe_moons_moon_id_position","type":"object"},"system_id":{"description":"The solar system this moon is in","format":"int32","title":"get_universe_moons_moon_id_system_id","type":"integer"}},"required":["moon_id","name","position","system_id"],"title":"get_universe_moons_moon_id_ok","type":"object"}},"404":{"description":"Moon not found","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_universe_moons_moon_id_404_not_found","type":"string"}},"title":"get_universe_moons_moon_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get moon information","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/planets/{planet_id}/":{"get":{"description":"Get information on a planet\n\n---\n\nThis route expires daily at 11:05","operationId":"get_universe_planets_planet_id","parameters":[{"$ref":"#/parameters/datasource"},{"description":"planet_id integer","format":"int32","in":"path","name":"planet_id","required":true,"type":"integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a planet","examples":{"application/json":{"name":"Akpivem III","planet_id":40000046,"position":{"x":-189226344497,"y":9901605317,"z":-254852632979},"system_id":30000003,"type_id":13}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"name":{"description":"name string","title":"get_universe_planets_planet_id_name","type":"string"},"planet_id":{"description":"planet_id integer","format":"int32","title":"get_universe_planets_planet_id_planet_id","type":"integer"},"position":{"description":"position object","properties":{"x":{"description":"x number","format":"float","title":"get_universe_planets_planet_id_x","type":"number"},"y":{"description":"y number","format":"float","title":"get_universe_planets_planet_id_y","type":"number"},"z":{"description":"z number","format":"float","title":"get_universe_planets_planet_id_z","type":"number"}},"required":["x","y","z"],"title":"get_universe_planets_planet_id_position","type":"object"},"system_id":{"description":"The solar system this planet is in","format":"int32","title":"get_universe_planets_planet_id_system_id","type":"integer"},"type_id":{"description":"type_id integer","format":"int32","title":"get_universe_planets_planet_id_type_id","type":"integer"}},"required":["planet_id","name","type_id","position","system_id"],"title":"get_universe_planets_planet_id_ok","type":"object"}},"404":{"description":"Planet not found","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_universe_planets_planet_id_404_not_found","type":"string"}},"title":"get_universe_planets_planet_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get planet information","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/races/":{"get":{"description":"Get a list of character races\n\n---\n\nThis route expires daily at 11:05","operationId":"get_universe_races","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of character races","examples":{"application/json":[{"alliance_id":500001,"description":"Founded on the tenets of patriotism and hard work...","name":"Caldari","race_id":1}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Content-Language":{"description":"The language used in the response","enum":["de","en-us","fr","ja","ru","zh"],"type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"alliance_id":{"description":"The alliance generally associated with this race","format":"int32","title":"get_universe_races_alliance_id","type":"integer"},"description":{"description":"description string","title":"get_universe_races_description","type":"string"},"name":{"description":"name string","title":"get_universe_races_name","type":"string"},"race_id":{"description":"race_id integer","format":"int32","title":"get_universe_races_race_id","type":"integer"}},"required":["race_id","name","description","alliance_id"],"title":"get_universe_races_200_ok","type":"object"},"maxItems":4,"title":"get_universe_races_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get character races","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/regions/":{"get":{"description":"Get a list of regions\n\n---\n\nThis route expires daily at 11:05","operationId":"get_universe_regions","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of region ids","examples":{"application/json":[11000001,11000002]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok integer","format":"int32","title":"get_universe_regions_200_ok","type":"integer"},"maxItems":1000,"title":"get_universe_regions_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get regions","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/regions/{region_id}/":{"get":{"description":"Get information on a region\n\n---\n\nThis route expires daily at 11:05","operationId":"get_universe_regions_region_id","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"description":"region_id integer","format":"int32","in":"path","name":"region_id","required":true,"type":"integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a region","examples":{"application/json":{"constellations":[20000302,20000303],"description":"It has long been an established fact of civilization...","name":"Metropolis","region_id":10000042}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Content-Language":{"description":"The language used in the response","enum":["de","en-us","fr","ja","ru","zh"],"type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"constellations":{"description":"constellations array","items":{"description":"constellation integer","format":"int32","title":"get_universe_regions_region_id_constellation","type":"integer"},"maxItems":1000,"title":"get_universe_regions_region_id_constellations","type":"array"},"description":{"description":"description string","title":"get_universe_regions_region_id_description","type":"string"},"name":{"description":"name string","title":"get_universe_regions_region_id_name","type":"string"},"region_id":{"description":"region_id integer","format":"int32","title":"get_universe_regions_region_id_region_id","type":"integer"}},"required":["region_id","name","constellations"],"title":"get_universe_regions_region_id_ok","type":"object"}},"404":{"description":"Region not found","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_universe_regions_region_id_404_not_found","type":"string"}},"title":"get_universe_regions_region_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get region information","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/schematics/{schematic_id}/":{"get":{"description":"Get information on a planetary factory schematic\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_universe_schematics_schematic_id","parameters":[{"$ref":"#/parameters/datasource"},{"description":"A PI schematic ID","format":"int32","in":"path","name":"schematic_id","required":true,"type":"integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Public data about a schematic","examples":{"application/json":{"cycle_time":1800,"schematic_name":"Bacteria"}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"cycle_time":{"description":"Time in seconds to process a run","format":"int32","title":"get_universe_schematics_schematic_id_cycle_time","type":"integer"},"schematic_name":{"description":"schematic_name string","title":"get_universe_schematics_schematic_id_schematic_name","type":"string"}},"required":["schematic_name","cycle_time"],"title":"get_universe_schematics_schematic_id_ok","type":"object"}},"404":{"description":"Schematic not found","examples":{"application/json":{"error":"Schematic not found"}},"schema":{"description":"Schematic not found","properties":{"error":{"description":"error message","title":"get_universe_schematics_schematic_id_error","type":"string"}},"title":"get_universe_schematics_schematic_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get schematic information","tags":["Planetary Interaction"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/universe/stargates/{stargate_id}/":{"get":{"description":"Get information on a stargate\n\n---\n\nThis route expires daily at 11:05","operationId":"get_universe_stargates_stargate_id","parameters":[{"$ref":"#/parameters/datasource"},{"description":"stargate_id integer","format":"int32","in":"path","name":"stargate_id","required":true,"type":"integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a stargate","examples":{"application/json":{"destination":{"stargate_id":50000056,"system_id":30000001},"name":"Stargate (Tanoo)","position":{"x":-101092761600,"y":5279539200,"z":1550503403520},"stargate_id":50000342,"system_id":30000003,"type_id":29624}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"destination":{"description":"destination object","properties":{"stargate_id":{"description":"The stargate this stargate connects to","format":"int32","title":"get_universe_stargates_stargate_id_stargate_id","type":"integer"},"system_id":{"description":"The solar system this stargate connects to","format":"int32","title":"get_universe_stargates_stargate_id_system_id","type":"integer"}},"required":["system_id","stargate_id"],"title":"get_universe_stargates_stargate_id_destination","type":"object"},"name":{"description":"name string","title":"get_universe_stargates_stargate_id_name","type":"string"},"position":{"description":"position object","properties":{"x":{"description":"x number","format":"float","title":"get_universe_stargates_stargate_id_x","type":"number"},"y":{"description":"y number","format":"float","title":"get_universe_stargates_stargate_id_y","type":"number"},"z":{"description":"z number","format":"float","title":"get_universe_stargates_stargate_id_z","type":"number"}},"required":["x","y","z"],"title":"get_universe_stargates_stargate_id_position","type":"object"},"stargate_id":{"description":"stargate_id integer","format":"int32","title":"get_universe_stargates_stargate_id_stargate_id","type":"integer"},"system_id":{"description":"The solar system this stargate is in","format":"int32","title":"get_universe_stargates_stargate_id_system_id","type":"integer"},"type_id":{"description":"type_id integer","format":"int32","title":"get_universe_stargates_stargate_id_type_id","type":"integer"}},"required":["stargate_id","name","type_id","position","system_id","destination"],"title":"get_universe_stargates_stargate_id_ok","type":"object"}},"404":{"description":"Stargate not found","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_universe_stargates_stargate_id_404_not_found","type":"string"}},"title":"get_universe_stargates_stargate_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get stargate information","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/stars/{star_id}/":{"get":{"description":"Get information on a star\n\n---\n\nThis route expires daily at 11:05","operationId":"get_universe_stars_star_id","parameters":[{"$ref":"#/parameters/datasource"},{"description":"star_id integer","format":"int32","in":"path","name":"star_id","required":true,"type":"integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a star","examples":{"application/json":{"age":9398686722,"luminosity":0.06615000218153,"name":"BKG-Q2 - Star","radius":346600000,"solar_system_id":30004333,"spectral_class":"K2 V","temperature":3953,"type_id":45033}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"age":{"description":"Age of star in years","format":"int64","title":"get_universe_stars_star_id_age","type":"integer"},"luminosity":{"description":"luminosity number","format":"float","title":"get_universe_stars_star_id_luminosity","type":"number"},"name":{"description":"name string","title":"get_universe_stars_star_id_name","type":"string"},"radius":{"description":"radius integer","format":"int64","title":"get_universe_stars_star_id_radius","type":"integer"},"solar_system_id":{"description":"solar_system_id integer","format":"int32","title":"get_universe_stars_star_id_solar_system_id","type":"integer"},"spectral_class":{"description":"spectral_class string","enum":["K2 V","K4 V","G2 V","G8 V","M7 V","K7 V","M2 V","K5 V","M3 V","G0 V","G7 V","G3 V","F9 V","G5 V","F6 V","K8 V","K9 V","K6 V","G9 V","G6 V","G4 VI","G4 V","F8 V","F2 V","F1 V","K3 V","F0 VI","G1 VI","G0 VI","K1 V","M4 V","M1 V","M6 V","M0 V","K2 IV","G2 VI","K0 V","K5 IV","F5 VI","G6 VI","F6 VI","F2 IV","G3 VI","M8 V","F1 VI","K1 IV","F7 V","G5 VI","M5 V","G7 VI","F5 V","F4 VI","F8 VI","K3 IV","F4 IV","F0 V","G7 IV","G8 VI","F2 VI","F4 V","F7 VI","F3 V","G1 V","G9 VI","F3 IV","F9 VI","M9 V","K0 IV","F1 IV","G4 IV","F3 VI","K4 IV","G5 IV","G3 IV","G1 IV","K7 IV","G0 IV","K6 IV","K9 IV","G2 IV","F9 IV","F0 IV","K8 IV","G8 IV","F6 IV","F5 IV","A0","A0IV","A0IV2"],"title":"get_universe_stars_star_id_spectral_class","type":"string"},"temperature":{"description":"temperature integer","format":"int32","title":"get_universe_stars_star_id_temperature","type":"integer"},"type_id":{"description":"type_id integer","format":"int32","title":"get_universe_stars_star_id_type_id","type":"integer"}},"required":["name","type_id","age","luminosity","radius","spectral_class","temperature","solar_system_id"],"title":"get_universe_stars_star_id_ok","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get star information","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/structures/":{"get":{"description":"List all public structures\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_universe_structures","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of public structure IDs","examples":{"application/json":[1000000017013,1000000025062]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok integer","format":"int64","minimum":0,"title":"get_universe_structures_200_ok","type":"integer"},"maxItems":10000,"title":"get_universe_structures_ok","type":"array","uniqueItems":true}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"List all public structures","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/universe/structures/{structure_id}/":{"get":{"description":"Returns information on requested structure, if you are on the ACL. Otherwise, returns \"Forbidden\" for all inputs.\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_universe_structures_structure_id","parameters":[{"$ref":"#/parameters/datasource"},{"description":"An Eve structure ID","format":"int64","in":"path","name":"structure_id","required":true,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Data about a structure","examples":{"application/json":{"name":"V-3YG7 VI - The Capital","solar_system_id":30000142}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"name":{"description":"The full name of the structure","title":"get_universe_structures_structure_id_name","type":"string"},"position":{"description":"Coordinates of the structure in Cartesian space relative to the Sun, in metres.\n","properties":{"x":{"description":"x number","format":"float","title":"get_universe_structures_structure_id_x","type":"number"},"y":{"description":"y number","format":"float","title":"get_universe_structures_structure_id_y","type":"number"},"z":{"description":"z number","format":"float","title":"get_universe_structures_structure_id_z","type":"number"}},"required":["x","y","z"],"title":"get_universe_structures_structure_id_position","type":"object"},"solar_system_id":{"description":"solar_system_id integer","format":"int32","title":"get_universe_structures_structure_id_solar_system_id","type":"integer"},"type_id":{"description":"type_id integer","format":"int32","title":"get_universe_structures_structure_id_type_id","type":"integer"}},"required":["name","solar_system_id"],"title":"get_universe_structures_structure_id_ok","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"404":{"description":"Structure not found","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_universe_structures_structure_id_404_not_found","type":"string"}},"title":"get_universe_structures_structure_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-universe.read_structures.v1"]}],"summary":"Get structure information","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/universe/system_jumps/":{"get":{"description":"Get the number of jumps in solar systems within the last hour ending at the timestamp of the Last-Modified header, excluding wormhole space. Only systems with jumps will be listed\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_universe_system_jumps","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of systems and number of jumps","examples":{"application/json":[{"ship_jumps":42,"system_id":30002410}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"ship_jumps":{"description":"ship_jumps integer","format":"int32","title":"get_universe_system_jumps_ship_jumps","type":"integer"},"system_id":{"description":"system_id integer","format":"int32","title":"get_universe_system_jumps_system_id","type":"integer"}},"required":["system_id","ship_jumps"],"title":"get_universe_system_jumps_200_ok","type":"object"},"maxItems":10000,"title":"get_universe_system_jumps_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get system jumps","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/universe/systems/":{"get":{"description":"Get a list of solar systems\n\n---\n\nThis route expires daily at 11:05","operationId":"get_universe_systems","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of solar system ids","examples":{"application/json":[30000001,30000002]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok integer","format":"int32","title":"get_universe_systems_200_ok","type":"integer"},"maxItems":10000,"title":"get_universe_systems_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get solar systems","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/types/":{"get":{"description":"Get a list of type ids\n\n---\n\nThis route expires daily at 11:05","operationId":"get_universe_types","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of type ids","examples":{"application/json":[1,2,3]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"X-Pages":{"default":1,"description":"Maximum page number","format":"int32","type":"integer"}},"schema":{"description":"200 ok array","items":{"description":"200 ok integer","format":"int32","title":"get_universe_types_200_ok","type":"integer"},"maxItems":1000,"title":"get_universe_types_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get types","tags":["Universe"],"x-alternate-versions":["dev","legacy","v1"]}},"/v1/wars/":{"get":{"description":"Return a list of wars\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_wars","parameters":[{"$ref":"#/parameters/datasource"},{"description":"Only return wars with ID smaller than this.","format":"int32","in":"query","name":"max_war_id","required":false,"type":"integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of war IDs, in decending order by war_id.","examples":{"application/json":[3,2,1]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok integer","format":"int32","title":"get_wars_200_ok","type":"integer"},"maxItems":2000,"title":"get_wars_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"List wars","tags":["Wars"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/wars/{war_id}/":{"get":{"description":"Return details about a war\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_wars_war_id","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"description":"ID for a war","format":"int32","in":"path","name":"war_id","required":true,"type":"integer"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Details about a war","examples":{"application/json":{"aggressor":{"corporation_id":986665792,"isk_destroyed":0,"ships_killed":0},"declared":"2004-05-22T05:20:00Z","defender":{"corporation_id":1001562011,"isk_destroyed":0,"ships_killed":0},"id":1941,"mutual":false,"open_for_allies":false}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"aggressor":{"description":"The aggressor corporation or alliance that declared this war, only contains either corporation_id or alliance_id","properties":{"alliance_id":{"description":"Alliance ID if and only if the aggressor is an alliance","format":"int32","title":"get_wars_war_id_alliance_id","type":"integer"},"corporation_id":{"description":"Corporation ID if and only if the aggressor is a corporation","format":"int32","title":"get_wars_war_id_corporation_id","type":"integer"},"isk_destroyed":{"description":"ISK value of ships the aggressor has destroyed","format":"float","title":"get_wars_war_id_isk_destroyed","type":"number"},"ships_killed":{"description":"The number of ships the aggressor has killed","format":"int32","title":"get_wars_war_id_ships_killed","type":"integer"}},"required":["ships_killed","isk_destroyed"],"title":"get_wars_war_id_aggressor","type":"object"},"allies":{"description":"allied corporations or alliances, each object contains either corporation_id or alliance_id","items":{"description":"ally object","properties":{"alliance_id":{"description":"Alliance ID if and only if this ally is an alliance","format":"int32","title":"get_wars_war_id_alliance_id","type":"integer"},"corporation_id":{"description":"Corporation ID if and only if this ally is a corporation","format":"int32","title":"get_wars_war_id_corporation_id","type":"integer"}},"title":"get_wars_war_id_ally","type":"object"},"maxItems":10000,"title":"get_wars_war_id_allies","type":"array"},"declared":{"description":"Time that the war was declared","format":"date-time","title":"get_wars_war_id_declared","type":"string"},"defender":{"description":"The defending corporation or alliance that declared this war, only contains either corporation_id or alliance_id","properties":{"alliance_id":{"description":"Alliance ID if and only if the defender is an alliance","format":"int32","title":"get_wars_war_id_alliance_id","type":"integer"},"corporation_id":{"description":"Corporation ID if and only if the defender is a corporation","format":"int32","title":"get_wars_war_id_corporation_id","type":"integer"},"isk_destroyed":{"description":"ISK value of ships the defender has killed","format":"float","title":"get_wars_war_id_isk_destroyed","type":"number"},"ships_killed":{"description":"The number of ships the defender has killed","format":"int32","title":"get_wars_war_id_ships_killed","type":"integer"}},"required":["ships_killed","isk_destroyed"],"title":"get_wars_war_id_defender","type":"object"},"finished":{"description":"Time the war ended and shooting was no longer allowed","format":"date-time","title":"get_wars_war_id_finished","type":"string"},"id":{"description":"ID of the specified war","format":"int32","title":"get_wars_war_id_id","type":"integer"},"mutual":{"description":"Was the war declared mutual by both parties","title":"get_wars_war_id_mutual","type":"boolean"},"open_for_allies":{"description":"Is the war currently open for allies or not","title":"get_wars_war_id_open_for_allies","type":"boolean"},"retracted":{"description":"Time the war was retracted but both sides could still shoot each other","format":"date-time","title":"get_wars_war_id_retracted","type":"string"},"started":{"description":"Time when the war started and both sides could shoot each other","format":"date-time","title":"get_wars_war_id_started","type":"string"}},"required":["id","declared","mutual","open_for_allies","aggressor","defender"],"title":"get_wars_war_id_ok","type":"object"}},"422":{"description":"War not found","examples":{"application/json":{"error":"Unprocessable entity message"}},"schema":{"description":"Unprocessable entity","properties":{"error":{"description":"Unprocessable entity message","title":"get_wars_war_id_422_unprocessable_entity","type":"string"}},"title":"get_wars_war_id_unprocessable_entity","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get war information","tags":["Wars"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v1/wars/{war_id}/killmails/":{"get":{"description":"Return a list of kills related to a war\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_wars_war_id_killmails","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/user_agent"},{"description":"A valid war ID","format":"int32","in":"path","name":"war_id","required":true,"type":"integer"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of killmail IDs and hashes","examples":{"application/json":[{"killmail_hash":"8eef5e8fb6b88fe3407c489df33822b2e3b57a5e","killmail_id":2},{"killmail_hash":"b41ccb498ece33d64019f64c0db392aa3aa701fb","killmail_id":1}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"X-Pages":{"default":1,"description":"Maximum page number","format":"int32","type":"integer"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"killmail_hash":{"description":"A hash of this killmail","title":"get_wars_war_id_killmails_killmail_hash","type":"string"},"killmail_id":{"description":"ID of this killmail","format":"int32","title":"get_wars_war_id_killmails_killmail_id","type":"integer"}},"required":["killmail_id","killmail_hash"],"title":"get_wars_war_id_killmails_200_ok","type":"object"},"maxItems":2000,"title":"get_wars_war_id_killmails_ok","type":"array"}},"422":{"description":"War not found","examples":{"application/json":{"error":"Unprocessable entity message"}},"schema":{"description":"Unprocessable entity","properties":{"error":{"description":"Unprocessable entity message","title":"get_wars_war_id_killmails_422_unprocessable_entity","type":"string"}},"title":"get_wars_war_id_killmails_unprocessable_entity","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"List kills for a war","tags":["Wars"],"x-alternate-versions":["dev","legacy","v1"],"x-cached-seconds":3600}},"/v2/alliances/{alliance_id}/":{"get":{"description":"Public information about an alliance\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_alliances_alliance_id","parameters":[{"$ref":"#/parameters/alliance_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Public data about an alliance","examples":{"application/json":{"alliance_name":"C C P Alliance","date_founded":"2016-06-26T21:00:00Z","executor_corp":98356193,"ticker":""}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"alliance_name":{"description":"the full name of the alliance","title":"get_alliances_alliance_id_alliance_name","type":"string"},"date_founded":{"description":"date_founded string","format":"date-time","title":"get_alliances_alliance_id_date_founded","type":"string"},"executor_corp":{"description":"the executor corporation ID, if this alliance is not closed","format":"int32","title":"get_alliances_alliance_id_executor_corp","type":"integer"},"ticker":{"description":"the short name of the alliance","title":"get_alliances_alliance_id_ticker","type":"string"}},"required":["alliance_name","ticker","date_founded"],"title":"get_alliances_alliance_id_ok","type":"object"}},"404":{"description":"Alliance not found","examples":{"application/json":{"error":"Alliance not found"}},"schema":{"description":"Alliance not found","properties":{"error":{"description":"error message","title":"get_alliances_alliance_id_error","type":"string"}},"title":"get_alliances_alliance_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get alliance information","tags":["Alliance"],"x-alternate-versions":["v2"],"x-cached-seconds":3600}},"/v2/characters/{character_id}/blueprints/":{"get":{"description":"Return a list of blueprints the character owns\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_characters_character_id_blueprints","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of blueprints","examples":{"application/json":[{"item_id":1000000010495,"location_flag":"Hangar","location_id":60014719,"material_efficiency":0,"quantity":1,"runs":-1,"time_efficiency":0,"type_id":691}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"X-Pages":{"default":1,"description":"Maximum page number","format":"int32","type":"integer"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"item_id":{"description":"Unique ID for this item.","format":"int64","title":"get_characters_character_id_blueprints_item_id","type":"integer"},"location_flag":{"description":"Type of the location_id","enum":["AutoFit","Cargo","CorpseBay","DroneBay","FleetHangar","Deliveries","HiddenModifiers","Hangar","HangarAll","LoSlot0","LoSlot1","LoSlot2","LoSlot3","LoSlot4","LoSlot5","LoSlot6","LoSlot7","MedSlot0","MedSlot1","MedSlot2","MedSlot3","MedSlot4","MedSlot5","MedSlot6","MedSlot7","HiSlot0","HiSlot1","HiSlot2","HiSlot3","HiSlot4","HiSlot5","HiSlot6","HiSlot7","AssetSafety","Locked","Unlocked","Implant","QuafeBay","RigSlot0","RigSlot1","RigSlot2","RigSlot3","RigSlot4","RigSlot5","RigSlot6","RigSlot7","ShipHangar","SpecializedFuelBay","SpecializedOreHold","SpecializedGasHold","SpecializedMineralHold","SpecializedSalvageHold","SpecializedShipHold","SpecializedSmallShipHold","SpecializedMediumShipHold","SpecializedLargeShipHold","SpecializedIndustrialShipHold","SpecializedAmmoHold","SpecializedCommandCenterHold","SpecializedPlanetaryCommoditiesHold","SpecializedMaterialBay","SubSystemSlot0","SubSystemSlot1","SubSystemSlot2","SubSystemSlot3","SubSystemSlot4","SubSystemSlot5","SubSystemSlot6","SubSystemSlot7","FighterBay","FighterTube0","FighterTube1","FighterTube2","FighterTube3","FighterTube4","Module"],"title":"get_characters_character_id_blueprints_location_flag","type":"string"},"location_id":{"description":"References a solar system, station or item_id if this blueprint is located within a container. If the return value is an item_id, then the Character AssetList API must be queried to find the container using the given item_id to determine the correct location of the Blueprint.","format":"int64","title":"get_characters_character_id_blueprints_location_id","type":"integer"},"material_efficiency":{"description":"Material Efficiency Level of the blueprint.","format":"int32","maximum":25,"minimum":0,"title":"get_characters_character_id_blueprints_material_efficiency","type":"integer"},"quantity":{"description":"A range of numbers with a minimum of -2 and no maximum value where -1 is an original and -2 is a copy. It can be a positive integer if it is a stack of blueprint originals fresh from the market (e.g. no activities performed on them yet).","format":"int32","minimum":-2,"title":"get_characters_character_id_blueprints_quantity","type":"integer"},"runs":{"description":"Number of runs remaining if the blueprint is a copy, -1 if it is an original.","format":"int32","minimum":-1,"title":"get_characters_character_id_blueprints_runs","type":"integer"},"time_efficiency":{"description":"Time Efficiency Level of the blueprint.","format":"int32","maximum":20,"minimum":0,"title":"get_characters_character_id_blueprints_time_efficiency","type":"integer"},"type_id":{"description":"type_id integer","format":"int32","title":"get_characters_character_id_blueprints_type_id","type":"integer"}},"required":["item_id","type_id","location_id","location_flag","quantity","time_efficiency","material_efficiency","runs"],"title":"get_characters_character_id_blueprints_200_ok","type":"object"},"maxItems":1000,"title":"get_characters_character_id_blueprints_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-characters.read_blueprints.v1"]}],"summary":"Get blueprints","tags":["Character"],"x-alternate-versions":["dev","v2"],"x-cached-seconds":3600}},"/v2/characters/{character_id}/clones/":{"get":{"description":"A list of the character's clones\n\n---\n\nThis route is cached for up to 120 seconds","operationId":"get_characters_character_id_clones","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Clone information for the given character","examples":{"application/json":{"home_location":{"location_id":1021348135816,"location_type":"structure"},"jump_clones":[{"implants":[22118],"location_id":60003463,"location_type":"station"},{"implants":[],"location_id":1021348135816,"location_type":"structure"}]}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"home_location":{"description":"home_location object","properties":{"location_id":{"description":"location_id integer","format":"int64","title":"get_characters_character_id_clones_location_id","type":"integer"},"location_type":{"description":"location_type string","enum":["station","structure"],"title":"get_characters_character_id_clones_location_type","type":"string"}},"title":"get_characters_character_id_clones_home_location","type":"object"},"jump_clones":{"description":"jump_clones array","items":{"description":"jump_clone object","properties":{"implants":{"description":"implants array","items":{"description":"implant integer","format":"int32","title":"get_characters_character_id_clones_implant","type":"integer"},"maxItems":11,"title":"get_characters_character_id_clones_implants","type":"array"},"location_id":{"description":"location_id integer","format":"int64","title":"get_characters_character_id_clones_location_id","type":"integer"},"location_type":{"description":"location_type string","enum":["station","structure"],"title":"get_characters_character_id_clones_location_type","type":"string"}},"title":"get_characters_character_id_clones_jump_clone","type":"object"},"maxItems":10,"title":"get_characters_character_id_clones_jump_clones","type":"array"},"last_jump_date":{"description":"last_jump_date string","format":"date-time","title":"get_characters_character_id_clones_last_jump_date","type":"string"}},"required":["jump_clones"],"title":"get_characters_character_id_clones_ok","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-clones.read_clones.v1"]}],"summary":"Get clones","tags":["Clones"],"x-alternate-versions":["legacy","v2"],"x-cached-seconds":120}},"/v2/characters/{character_id}/mail/labels/":{"post":{"description":"Create a mail label\n\n---\n","operationId":"post_characters_character_id_mail_labels","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"description":"Label to create","in":"body","name":"label","schema":{"description":"label object","properties":{"color":{"default":"#ffffff","description":"Hexadecimal string representing label color, in RGB format","enum":["#0000fe","#006634","#0099ff","#00ff33","#01ffff","#349800","#660066","#666666","#999999","#99ffff","#9a0000","#ccff9a","#e6e6e6","#fe0000","#ff6600","#ffff01","#ffffcd","#ffffff"],"title":"post_characters_character_id_mail_labels_color","type":"string"},"name":{"description":"name string","maxLength":40,"minLength":1,"title":"post_characters_character_id_mail_labels_name","type":"string"}},"required":["name"],"title":"post_characters_character_id_mail_labels_label","type":"object"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"201":{"description":"Label created","examples":{"application/json":128},"schema":{"description":"Label ID","format":"int64","title":"post_characters_character_id_mail_labels_created","type":"integer"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-mail.organize_mail.v1"]}],"summary":"Create a mail label","tags":["Mail"],"x-alternate-versions":["dev","legacy","v2"]}},"/v2/characters/{character_id}/portrait/":{"get":{"description":"Get portrait urls for a character\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_characters_character_id_portrait","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Public data for the given character","examples":{"application/json":{"px128x128":"https://imageserver.eveonline.com/Character/95465499_128.jpg","px256x256":"https://imageserver.eveonline.com/Character/95465499_256.jpg","px512x512":"https://imageserver.eveonline.com/Character/95465499_512.jpg","px64x64":"https://imageserver.eveonline.com/Character/95465499_64.jpg"}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"px128x128":{"description":"px128x128 string","title":"get_characters_character_id_portrait_px128x128","type":"string"},"px256x256":{"description":"px256x256 string","title":"get_characters_character_id_portrait_px256x256","type":"string"},"px512x512":{"description":"px512x512 string","title":"get_characters_character_id_portrait_px512x512","type":"string"},"px64x64":{"description":"px64x64 string","title":"get_characters_character_id_portrait_px64x64","type":"string"}},"title":"get_characters_character_id_portrait_ok","type":"object"}},"404":{"description":"No image server for this datasource","examples":{"application/json":{"error":"No image server for this datasource"}},"schema":{"description":"No image server for this datasource","properties":{"error":{"description":"error message","title":"get_characters_character_id_portrait_error","type":"string"}},"title":"get_characters_character_id_portrait_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get character portraits","tags":["Character"],"x-alternate-versions":["dev","v2"],"x-cached-seconds":3600}},"/v2/characters/{character_id}/search/":{"get":{"description":"Search for entities that match a given sub-string.\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_characters_character_id_search","parameters":[{"description":"Type of entities to search for","in":"query","items":{"enum":["agent","alliance","character","constellation","corporation","faction","inventorytype","region","solarsystem","station","structure","wormhole"],"type":"string"},"maxItems":12,"minItems":1,"name":"categories","required":true,"type":"array","uniqueItems":true},{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"description":"The string to search on","in":"query","minLength":3,"name":"search","required":true,"type":"string"},{"default":false,"description":"Whether the search should be a strict match","in":"query","name":"strict","type":"boolean"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of search results","examples":{"application/json":{"solarsystem":[30002510],"station":[60004588,60004594,60005725,60009106,60012721,60012724,60012727]}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Content-Language":{"description":"The language used in the response","enum":["de","en-us","fr","ja","ru","zh"],"type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"agent":{"description":"agent array","items":{"description":"agent integer","format":"int32","title":"get_characters_character_id_search_agent","type":"integer"},"maxItems":500,"title":"get_characters_character_id_search_agent","type":"array"},"alliance":{"description":"alliance array","items":{"description":"alliance integer","format":"int32","title":"get_characters_character_id_search_alliance","type":"integer"},"maxItems":500,"title":"get_characters_character_id_search_alliance","type":"array"},"character":{"description":"character array","items":{"description":"character integer","format":"int32","title":"get_characters_character_id_search_character","type":"integer"},"maxItems":500,"title":"get_characters_character_id_search_character","type":"array"},"constellation":{"description":"constellation array","items":{"description":"constellation integer","format":"int32","title":"get_characters_character_id_search_constellation","type":"integer"},"maxItems":500,"title":"get_characters_character_id_search_constellation","type":"array"},"corporation":{"description":"corporation array","items":{"description":"corporation integer","format":"int32","title":"get_characters_character_id_search_corporation","type":"integer"},"maxItems":500,"title":"get_characters_character_id_search_corporation","type":"array"},"faction":{"description":"faction array","items":{"description":"faction integer","format":"int32","title":"get_characters_character_id_search_faction","type":"integer"},"maxItems":500,"title":"get_characters_character_id_search_faction","type":"array"},"inventorytype":{"description":"inventorytype array","items":{"description":"inventorytype integer","format":"int32","title":"get_characters_character_id_search_inventorytype","type":"integer"},"maxItems":500,"title":"get_characters_character_id_search_inventorytype","type":"array"},"region":{"description":"region array","items":{"description":"region integer","format":"int32","title":"get_characters_character_id_search_region","type":"integer"},"maxItems":500,"title":"get_characters_character_id_search_region","type":"array"},"solarsystem":{"description":"solarsystem array","items":{"description":"solarsystem integer","format":"int32","title":"get_characters_character_id_search_solarsystem","type":"integer"},"maxItems":500,"title":"get_characters_character_id_search_solarsystem","type":"array"},"station":{"description":"station array","items":{"description":"station integer","format":"int32","title":"get_characters_character_id_search_station","type":"integer"},"maxItems":500,"title":"get_characters_character_id_search_station","type":"array"},"structure":{"description":"structure array","items":{"description":"structure integer","format":"int64","title":"get_characters_character_id_search_structure","type":"integer"},"maxItems":500,"title":"get_characters_character_id_search_structure","type":"array"},"wormhole":{"description":"wormhole array","items":{"description":"wormhole integer","format":"int32","title":"get_characters_character_id_search_wormhole","type":"integer"},"maxItems":500,"title":"get_characters_character_id_search_wormhole","type":"array"}},"title":"get_characters_character_id_search_ok","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-search.search_structures.v1"]}],"summary":"Search on a string","tags":["Search"],"x-alternate-versions":["v2"],"x-cached-seconds":3600}},"/v2/characters/{character_id}/skillqueue/":{"get":{"description":"List the configured skill queue for the given character\n\n---\n\nThis route is cached for up to 120 seconds","operationId":"get_characters_character_id_skillqueue","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"The current skill queue, sorted ascending by finishing time","examples":{"application/json":[{"finish_date":"2016-06-29T10:47:00Z","finished_level":3,"queue_position":0,"skill_id":1,"start_date":"2016-06-29T10:46:00Z"},{"finish_date":"2016-07-15T10:47:00Z","finished_level":4,"queue_position":1,"skill_id":1,"start_date":"2016-06-29T10:47:00Z"},{"finish_date":"2016-08-30T10:47:00Z","finished_level":2,"queue_position":2,"skill_id":2,"start_date":"2016-07-15T10:47:00Z"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"finish_date":{"description":"finish_date string","format":"date-time","title":"get_characters_character_id_skillqueue_finish_date","type":"string"},"finished_level":{"description":"finished_level integer","format":"int32","maximum":5,"minimum":0,"title":"get_characters_character_id_skillqueue_finished_level","type":"integer"},"level_end_sp":{"description":"level_end_sp integer","format":"int32","title":"get_characters_character_id_skillqueue_level_end_sp","type":"integer"},"level_start_sp":{"description":"Amount of SP that was in the skill when it started training it's current level. Used to calculate % of current level complete.","format":"int32","title":"get_characters_character_id_skillqueue_level_start_sp","type":"integer"},"queue_position":{"description":"queue_position integer","format":"int32","title":"get_characters_character_id_skillqueue_queue_position","type":"integer"},"skill_id":{"description":"skill_id integer","format":"int32","title":"get_characters_character_id_skillqueue_skill_id","type":"integer"},"start_date":{"description":"start_date string","format":"date-time","title":"get_characters_character_id_skillqueue_start_date","type":"string"},"training_start_sp":{"description":"training_start_sp integer","format":"int32","title":"get_characters_character_id_skillqueue_training_start_sp","type":"integer"}},"required":["skill_id","finished_level","queue_position"],"title":"get_characters_character_id_skillqueue_200_ok","type":"object"},"maxItems":51,"title":"get_characters_character_id_skillqueue_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-skills.read_skillqueue.v1"]}],"summary":"Get character's skill queue","tags":["Skills"],"x-alternate-versions":["dev","legacy","v2"],"x-cached-seconds":120}},"/v2/characters/{character_id}/wallet/journal/":{"get":{"description":"Retrieve character wallet journal\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_characters_character_id_wallet_journal","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"description":"Only show journal entries happened before the transaction referenced by this id","format":"int64","in":"query","name":"from_id","required":false,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Journal entries","examples":{"application/json":[{"date":"2016-10-24T09:00:00Z","ref_id":1234567890,"ref_type":"player_trading"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"Journal entries","items":{"description":"200 ok object","properties":{"amount":{"description":"Transaction amount. Positive when value transferred to the first party. Negative otherwise","format":"float","title":"get_characters_character_id_wallet_journal_amount","type":"number"},"balance":{"description":"Wallet balance after transaction occurred","format":"float","title":"get_characters_character_id_wallet_journal_balance","type":"number"},"date":{"description":"Date and time of transaction","format":"date-time","title":"get_characters_character_id_wallet_journal_date","type":"string"},"extra_info":{"description":"Extra information for different type of transaction","properties":{"alliance_id":{"description":"alliance_id integer","format":"int32","title":"get_characters_character_id_wallet_journal_alliance_id","type":"integer"},"character_id":{"description":"character_id integer","format":"int32","title":"get_characters_character_id_wallet_journal_character_id","type":"integer"},"contract_id":{"description":"contract_id integer","format":"int32","title":"get_characters_character_id_wallet_journal_contract_id","type":"integer"},"corporation_id":{"description":"corporation_id integer","format":"int32","title":"get_characters_character_id_wallet_journal_corporation_id","type":"integer"},"destroyed_ship_type_id":{"description":"destroyed_ship_type_id integer","format":"int32","title":"get_characters_character_id_wallet_journal_destroyed_ship_type_id","type":"integer"},"job_id":{"description":"job_id integer","format":"int32","title":"get_characters_character_id_wallet_journal_job_id","type":"integer"},"location_id":{"description":"location_id integer","format":"int64","title":"get_characters_character_id_wallet_journal_location_id","type":"integer"},"npc_id":{"description":"npc_id integer","format":"int32","title":"get_characters_character_id_wallet_journal_npc_id","type":"integer"},"npc_name":{"description":"npc_name string","title":"get_characters_character_id_wallet_journal_npc_name","type":"string"},"planet_id":{"description":"planet_id integer","format":"int32","title":"get_characters_character_id_wallet_journal_planet_id","type":"integer"},"system_id":{"description":"system_id integer","format":"int32","title":"get_characters_character_id_wallet_journal_system_id","type":"integer"},"transaction_id":{"description":"transaction_id integer","format":"int64","title":"get_characters_character_id_wallet_journal_transaction_id","type":"integer"}},"title":"get_characters_character_id_wallet_journal_extra_info","type":"object"},"first_party_id":{"description":"first_party_id integer","format":"int32","title":"get_characters_character_id_wallet_journal_first_party_id","type":"integer"},"first_party_type":{"description":"first_party_type string","enum":["character","corporation","alliance","faction"],"title":"get_characters_character_id_wallet_journal_first_party_type","type":"string"},"reason":{"description":"reason string","title":"get_characters_character_id_wallet_journal_reason","type":"string"},"ref_id":{"description":"Unique journal reference ID","format":"int64","title":"get_characters_character_id_wallet_journal_ref_id","type":"integer"},"ref_type":{"description":"Transaction type, different type of transaction will populate different fields in `extra_info`","enum":["player_trading","market_transaction","gm_cash_transfer","mission_reward","clone_activation","inheritance","player_donation","corporation_payment","docking_fee","office_rental_fee","factory_slot_rental_fee","repair_bill","bounty","bounty_prize","insurance","mission_expiration","mission_completion","shares","courier_mission_escrow","mission_cost","agent_miscellaneous","lp_store","agent_location_services","agent_donation","agent_security_services","agent_mission_collateral_paid","agent_mission_collateral_refunded","agents_preward","agent_mission_reward","agent_mission_time_bonus_reward","cspa","cspaofflinerefund","corporation_account_withdrawal","corporation_dividend_payment","corporation_registration_fee","corporation_logo_change_cost","release_of_impounded_property","market_escrow","agent_services_rendered","market_fine_paid","corporation_liquidation","brokers_fee","corporation_bulk_payment","alliance_registration_fee","war_fee","alliance_maintainance_fee","contraband_fine","clone_transfer","acceleration_gate_fee","transaction_tax","jump_clone_installation_fee","manufacturing","researching_technology","researching_time_productivity","researching_material_productivity","copying","reverse_engineering","contract_auction_bid","contract_auction_bid_refund","contract_collateral","contract_reward_refund","contract_auction_sold","contract_reward","contract_collateral_refund","contract_collateral_payout","contract_price","contract_brokers_fee","contract_sales_tax","contract_deposit","contract_deposit_sales_tax","contract_auction_bid_corp","contract_collateral_deposited_corp","contract_price_payment_corp","contract_brokers_fee_corp","contract_deposit_corp","contract_deposit_refund","contract_reward_deposited","contract_reward_deposited_corp","bounty_prizes","advertisement_listing_fee","medal_creation","medal_issued","dna_modification_fee","sovereignity_bill","bounty_prize_corporation_tax","agent_mission_reward_corporation_tax","agent_mission_time_bonus_reward_corporation_tax","upkeep_adjustment_fee","planetary_import_tax","planetary_export_tax","planetary_construction","corporate_reward_payout","bounty_surcharge","contract_reversal","corporate_reward_tax","store_purchase","store_purchase_refund","datacore_fee","war_fee_surrender","war_ally_contract","bounty_reimbursement","kill_right_fee","security_processing_fee","industry_job_tax","infrastructure_hub_maintenance","asset_safety_recovery_tax","opportunity_reward","project_discovery_reward","project_discovery_tax","reprocessing_tax","jump_clone_activation_fee","operation_bonus"],"title":"get_characters_character_id_wallet_journal_ref_type","type":"string"},"second_party_id":{"description":"second_party_id integer","format":"int32","title":"get_characters_character_id_wallet_journal_second_party_id","type":"integer"},"second_party_type":{"description":"second_party_type string","enum":["character","corporation","alliance","faction"],"title":"get_characters_character_id_wallet_journal_second_party_type","type":"string"},"tax":{"description":"Tax amount received for tax related transactions","format":"float","title":"get_characters_character_id_wallet_journal_tax","type":"number"},"tax_reciever_id":{"description":"the corporation ID receiving any tax paid","format":"int32","title":"get_characters_character_id_wallet_journal_tax_reciever_id","type":"integer"}},"required":["date","ref_id","ref_type"],"title":"get_characters_character_id_wallet_journal_200_ok","type":"object"},"maxItems":2500,"title":"get_characters_character_id_wallet_journal_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-wallet.read_character_wallet.v1"]}],"summary":"Get character wallet journal","tags":["Wallet"],"x-alternate-versions":["dev","v2"],"x-cached-seconds":3600}},"/v2/corporations/{corporation_id}/alliancehistory/":{"get":{"description":"Get a list of all the alliances a corporation has been a member of\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_alliancehistory","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Alliance history for the given corporation","examples":{"application/json":[{"alliance_id":99000006,"is_deleted":true,"record_id":23,"start_date":"2016-10-25T14:46:00Z"},{"record_id":1,"start_date":"2015-07-06T20:56:00Z"}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"alliance_id":{"description":"alliance_id integer","format":"int32","title":"get_corporations_corporation_id_alliancehistory_alliance_id","type":"integer"},"is_deleted":{"description":"True if the alliance has been closed","title":"get_corporations_corporation_id_alliancehistory_is_deleted","type":"boolean"},"record_id":{"description":"An incrementing ID that can be used to canonically establish order of records in cases where dates may be ambiguous","format":"int32","title":"get_corporations_corporation_id_alliancehistory_record_id","type":"integer"},"start_date":{"description":"start_date string","format":"date-time","title":"get_corporations_corporation_id_alliancehistory_start_date","type":"string"}},"required":["start_date","record_id"],"title":"get_corporations_corporation_id_alliancehistory_200_ok","type":"object"},"maxItems":10000,"title":"get_corporations_corporation_id_alliancehistory_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get alliance history","tags":["Corporation"],"x-alternate-versions":["dev","v2"],"x-cached-seconds":3600}},"/v2/corporations/{corporation_id}/members/":{"get":{"description":"Read the current list of members if the calling character is a member.\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id_members","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of member character IDs","examples":{"application/json":[{"character_id":90000001},{"character_id":90000002}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"character_id":{"description":"character_id integer","format":"int32","title":"get_corporations_corporation_id_members_character_id","type":"integer"}},"required":["character_id"],"title":"get_corporations_corporation_id_members_200_ok","type":"object"},"maxItems":12601,"title":"get_corporations_corporation_id_members_ok","type":"array"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-corporations.read_corporation_membership.v1"]}],"summary":"Get corporation members","tags":["Corporation"],"x-alternate-versions":["legacy","v2"],"x-cached-seconds":3600}},"/v2/dogma/effects/{effect_id}/":{"get":{"description":"Get information on a dogma effect\n\n---\n\nThis route expires daily at 11:05","operationId":"get_dogma_effects_effect_id","parameters":[{"$ref":"#/parameters/datasource"},{"description":"A dogma effect ID","format":"int32","in":"path","name":"effect_id","required":true,"type":"integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a dogma effect","examples":{"application/json":{"description":"Requires a high power slot.","display_name":"High power","effect_category":0,"effect_id":12,"icon_id":293,"name":"hiPower","post_expression":131,"pre_expression":131,"published":true}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"description":{"description":"description string","title":"get_dogma_effects_effect_id_description","type":"string"},"disallow_auto_repeat":{"description":"disallow_auto_repeat boolean","title":"get_dogma_effects_effect_id_disallow_auto_repeat","type":"boolean"},"discharge_attribute_id":{"description":"discharge_attribute_id integer","format":"int32","title":"get_dogma_effects_effect_id_discharge_attribute_id","type":"integer"},"display_name":{"description":"display_name string","title":"get_dogma_effects_effect_id_display_name","type":"string"},"duration_attribute_id":{"description":"duration_attribute_id integer","format":"int32","title":"get_dogma_effects_effect_id_duration_attribute_id","type":"integer"},"effect_category":{"description":"effect_category integer","format":"int32","title":"get_dogma_effects_effect_id_effect_category","type":"integer"},"effect_id":{"description":"effect_id integer","format":"int32","title":"get_dogma_effects_effect_id_effect_id","type":"integer"},"electronic_chance":{"description":"electronic_chance boolean","title":"get_dogma_effects_effect_id_electronic_chance","type":"boolean"},"falloff_attribute_id":{"description":"falloff_attribute_id integer","format":"int32","title":"get_dogma_effects_effect_id_falloff_attribute_id","type":"integer"},"icon_id":{"description":"icon_id integer","format":"int32","title":"get_dogma_effects_effect_id_icon_id","type":"integer"},"is_assistance":{"description":"is_assistance boolean","title":"get_dogma_effects_effect_id_is_assistance","type":"boolean"},"is_offensive":{"description":"is_offensive boolean","title":"get_dogma_effects_effect_id_is_offensive","type":"boolean"},"is_warp_safe":{"description":"is_warp_safe boolean","title":"get_dogma_effects_effect_id_is_warp_safe","type":"boolean"},"modifiers":{"description":"modifiers array","items":{"description":"modifier object","properties":{"domain":{"description":"domain string","title":"get_dogma_effects_effect_id_domain","type":"string"},"effect_id":{"description":"effect_id integer","format":"int32","title":"get_dogma_effects_effect_id_effect_id","type":"integer"},"func":{"description":"func string","title":"get_dogma_effects_effect_id_func","type":"string"},"modified_attribute_id":{"description":"modified_attribute_id integer","format":"int32","title":"get_dogma_effects_effect_id_modified_attribute_id","type":"integer"},"modifying_attribute_id":{"description":"modifying_attribute_id integer","format":"int32","title":"get_dogma_effects_effect_id_modifying_attribute_id","type":"integer"},"operator":{"description":"operator integer","format":"int32","title":"get_dogma_effects_effect_id_operator","type":"integer"}},"required":["func"],"title":"get_dogma_effects_effect_id_modifier","type":"object"},"maxItems":100,"title":"get_dogma_effects_effect_id_modifiers","type":"array"},"name":{"description":"name string","title":"get_dogma_effects_effect_id_name","type":"string"},"post_expression":{"description":"post_expression integer","format":"int32","title":"get_dogma_effects_effect_id_post_expression","type":"integer"},"pre_expression":{"description":"pre_expression integer","format":"int32","title":"get_dogma_effects_effect_id_pre_expression","type":"integer"},"published":{"description":"published boolean","title":"get_dogma_effects_effect_id_published","type":"boolean"},"range_attribute_id":{"description":"range_attribute_id integer","format":"int32","title":"get_dogma_effects_effect_id_range_attribute_id","type":"integer"},"range_chance":{"description":"range_chance boolean","title":"get_dogma_effects_effect_id_range_chance","type":"boolean"},"tracking_speed_attribute_id":{"description":"tracking_speed_attribute_id integer","format":"int32","title":"get_dogma_effects_effect_id_tracking_speed_attribute_id","type":"integer"}},"required":["effect_id"],"title":"get_dogma_effects_effect_id_ok","type":"object"}},"404":{"description":"Dogma effect not found","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_dogma_effects_effect_id_404_not_found","type":"string"}},"title":"get_dogma_effects_effect_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get effect information","tags":["Dogma"],"x-alternate-versions":["dev","v2"]}},"/v2/ui/autopilot/waypoint/":{"post":{"description":"Set a solar system as autopilot waypoint\n\n---\n","operationId":"post_ui_autopilot_waypoint","parameters":[{"default":false,"description":"Whether this solar system should be added to the beginning of all waypoints","in":"query","name":"add_to_beginning","required":true,"type":"boolean"},{"default":false,"description":"Whether clean other waypoints beforing adding this one","in":"query","name":"clear_other_waypoints","required":true,"type":"boolean"},{"$ref":"#/parameters/datasource"},{"description":"The destination to travel to, can be solar system, station or structure's id","format":"int64","in":"query","name":"destination_id","required":true,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Open window request received"},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-ui.write_waypoint.v1"]}],"summary":"Set Autopilot Waypoint","tags":["User Interface"],"x-alternate-versions":["dev","v2"]}},"/v2/universe/names/":{"post":{"description":"Resolve a set of IDs to names and categories. Supported ID's for resolving are: Characters, Corporations, Alliances, Stations, Solar Systems, Constellations, Regions, Types.\n\n---\n","operationId":"post_universe_names","parameters":[{"$ref":"#/parameters/datasource"},{"description":"The ids to resolve","in":"body","name":"ids","required":true,"schema":{"description":"ids array","example":[95465499,30000142],"items":{"description":"id integer","format":"int32","title":"post_universe_names_id","type":"integer"},"maxItems":1000,"minItems":1,"title":"post_universe_names_ids","type":"array","uniqueItems":true}},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of id/name associations for a set of ID's. All ID's must resolve to a name, or nothing will be returned.","examples":{"application/json":[{"category":"character","id":95465499,"name":"CCP Bartender"},{"category":"solar_system","id":30000142,"name":"Jita"}]},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"category":{"description":"category string","enum":["alliance","character","constellation","corporation","inventory_type","region","solar_system","station"],"title":"post_universe_names_category","type":"string"},"id":{"description":"id integer","format":"int32","title":"post_universe_names_id","type":"integer"},"name":{"description":"name string","title":"post_universe_names_name","type":"string"}},"required":["id","name","category"],"title":"post_universe_names_200_ok","type":"object"},"maxItems":1000,"title":"post_universe_names_ok","type":"array"}},"404":{"description":"Ensure all IDs are valid before resolving.","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"post_universe_names_404_not_found","type":"string"}},"title":"post_universe_names_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get names and categories for a set of ID's","tags":["Universe"],"x-alternate-versions":["dev","v2"]}},"/v2/universe/stations/{station_id}/":{"get":{"description":"Get information on a station\n\n---\n\nThis route is cached for up to 300 seconds","operationId":"get_universe_stations_station_id","parameters":[{"$ref":"#/parameters/datasource"},{"description":"station_id integer","format":"int32","in":"path","name":"station_id","required":true,"type":"integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a station","examples":{"application/json":{"max_dockable_ship_volume":50000000,"name":"Jakanerva III - Moon 15 - Prompt Delivery Storage","office_rental_cost":10000,"owner":1000003,"position":{"x":165632286720,"y":2771804160,"z":-2455331266560},"race_id":1,"reprocessing_efficiency":0.5,"reprocessing_stations_take":0.05,"services":["courier-missions","reprocessing-plant","market","repair-facilities","fitting","news","storage","insurance","docking","office-rental","loyalty-point-store","navy-offices"],"station_id":60000277,"system_id":30000148,"type_id":1531}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"max_dockable_ship_volume":{"description":"max_dockable_ship_volume number","format":"float","title":"get_universe_stations_station_id_max_dockable_ship_volume","type":"number"},"name":{"description":"name string","title":"get_universe_stations_station_id_name","type":"string"},"office_rental_cost":{"description":"office_rental_cost number","format":"float","title":"get_universe_stations_station_id_office_rental_cost","type":"number"},"owner":{"description":"ID of the corporation that controls this station","format":"int32","title":"get_universe_stations_station_id_owner","type":"integer"},"position":{"description":"position object","properties":{"x":{"description":"x number","format":"float","title":"get_universe_stations_station_id_x","type":"number"},"y":{"description":"y number","format":"float","title":"get_universe_stations_station_id_y","type":"number"},"z":{"description":"z number","format":"float","title":"get_universe_stations_station_id_z","type":"number"}},"required":["x","y","z"],"title":"get_universe_stations_station_id_position","type":"object"},"race_id":{"description":"race_id integer","format":"int32","title":"get_universe_stations_station_id_race_id","type":"integer"},"reprocessing_efficiency":{"description":"reprocessing_efficiency number","format":"float","title":"get_universe_stations_station_id_reprocessing_efficiency","type":"number"},"reprocessing_stations_take":{"description":"reprocessing_stations_take number","format":"float","title":"get_universe_stations_station_id_reprocessing_stations_take","type":"number"},"services":{"description":"services array","items":{"description":"service string","enum":["bounty-missions","assasination-missions","courier-missions","interbus","reprocessing-plant","refinery","market","black-market","stock-exchange","cloning","surgery","dna-therapy","repair-facilities","factory","labratory","gambling","fitting","paintshop","news","storage","insurance","docking","office-rental","jump-clone-facility","loyalty-point-store","navy-offices","security-offices"],"title":"get_universe_stations_station_id_service","type":"string"},"maxItems":30,"title":"get_universe_stations_station_id_services","type":"array"},"station_id":{"description":"station_id integer","format":"int32","title":"get_universe_stations_station_id_station_id","type":"integer"},"system_id":{"description":"The solar system this station is in","format":"int32","title":"get_universe_stations_station_id_system_id","type":"integer"},"type_id":{"description":"type_id integer","format":"int32","title":"get_universe_stations_station_id_type_id","type":"integer"}},"required":["station_id","name","type_id","position","system_id","reprocessing_efficiency","reprocessing_stations_take","max_dockable_ship_volume","office_rental_cost","services"],"title":"get_universe_stations_station_id_ok","type":"object"}},"404":{"description":"Station not found","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_universe_stations_station_id_404_not_found","type":"string"}},"title":"get_universe_stations_station_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get station information","tags":["Universe"],"x-alternate-versions":["dev","v2"],"x-cached-seconds":300}},"/v2/universe/system_kills/":{"get":{"description":"Get the number of ship, pod and NPC kills per solar system within the last hour ending at the timestamp of the Last-Modified header, excluding wormhole space. Only systems with kills will be listed\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_universe_system_kills","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of systems and number of ship, pod and NPC kills","examples":{"application/json":[{"npc_kills":0,"pod_kills":24,"ship_kills":42,"system_id":30002410}]},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok array","items":{"description":"200 ok object","properties":{"npc_kills":{"description":"Number of NPC ships killed in this system","format":"int32","title":"get_universe_system_kills_npc_kills","type":"integer"},"pod_kills":{"description":"Number of pods killed in this system","format":"int32","title":"get_universe_system_kills_pod_kills","type":"integer"},"ship_kills":{"description":"Number of player ships killed in this system","format":"int32","title":"get_universe_system_kills_ship_kills","type":"integer"},"system_id":{"description":"system_id integer","format":"int32","title":"get_universe_system_kills_system_id","type":"integer"}},"required":["system_id","ship_kills","npc_kills","pod_kills"],"title":"get_universe_system_kills_200_ok","type":"object"},"maxItems":10000,"title":"get_universe_system_kills_ok","type":"array"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get system kills","tags":["Universe"],"x-alternate-versions":["dev","v2"],"x-cached-seconds":3600}},"/v3/characters/{character_id}/calendar/{event_id}/":{"get":{"description":"Get all the information for a specific event\n\n---\n\nThis route is cached for up to 5 seconds","operationId":"get_characters_character_id_calendar_event_id","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"description":"The id of the event requested","format":"int32","in":"path","name":"event_id","required":true,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Full details of a specific event","examples":{"application/json":{"date":"2016-06-26T21:00:00Z","duration":60,"event_id":1386435,"importance":1,"owner_id":1,"owner_name":"EVE System","owner_type":"eve_server","response":"Undecided","text":"o7: The EVE Online Show features latest developer news, fast paced action, community overviews and a lot more with CCP Guard and CCP Mimic. Join the thrilling o7 live broadcast at 20:00 EVE time (=UTC) on EVE TV. Don't miss it!","title":"o7 The EVE Online Show"}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"Full details of a specific event","properties":{"date":{"description":"date string","format":"date-time","title":"get_characters_character_id_calendar_event_id_date","type":"string"},"duration":{"description":"Length in minutes","format":"int32","title":"get_characters_character_id_calendar_event_id_duration","type":"integer"},"event_id":{"description":"event_id integer","format":"int32","title":"get_characters_character_id_calendar_event_id_event_id","type":"integer"},"importance":{"description":"importance integer","format":"int32","title":"get_characters_character_id_calendar_event_id_importance","type":"integer"},"owner_id":{"description":"owner_id integer","format":"int32","title":"get_characters_character_id_calendar_event_id_owner_id","type":"integer"},"owner_name":{"description":"owner_name string","title":"get_characters_character_id_calendar_event_id_owner_name","type":"string"},"owner_type":{"description":"owner_type string","enum":["eve_server","corporation","faction","character","alliance"],"title":"get_characters_character_id_calendar_event_id_owner_type","type":"string"},"response":{"description":"response string","title":"get_characters_character_id_calendar_event_id_response","type":"string"},"text":{"description":"text string","title":"get_characters_character_id_calendar_event_id_text","type":"string"},"title":{"description":"title string","title":"get_characters_character_id_calendar_event_id_title","type":"string"}},"required":["event_id","owner_id","owner_name","date","title","duration","importance","response","text","owner_type"],"title":"get_characters_character_id_calendar_event_id_ok","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-calendar.read_calendar_events.v1"]}],"summary":"Get an event","tags":["Calendar"],"x-alternate-versions":["dev","v3"],"x-cached-seconds":5},"put":{"description":"Set your response status to an event\n\n---\n","operationId":"put_characters_character_id_calendar_event_id","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"description":"The ID of the event requested","format":"int32","in":"path","name":"event_id","required":true,"type":"integer"},{"description":"The response value to set, overriding current value.","in":"body","name":"response","required":true,"schema":{"description":"response schema","properties":{"response":{"description":"response string","enum":["accepted","declined","tentative"],"title":"put_characters_character_id_calendar_event_id_response","type":"string"}},"required":["response"],"title":"put_characters_character_id_calendar_event_id_response"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Event updated"},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-calendar.respond_calendar_events.v1"]}],"summary":"Respond to an event","tags":["Calendar"],"x-alternate-versions":["dev","v3"]}},"/v3/characters/{character_id}/cspa/":{"post":{"description":"Takes a source character ID in the url and a set of target character ID's in the body, returns a CSPA charge cost\n\n---\n","operationId":"post_characters_character_id_cspa","parameters":[{"$ref":"#/parameters/character_id"},{"description":"The target characters to calculate the charge for","in":"body","name":"characters","required":true,"schema":{"description":"characters object","properties":{"characters":{"description":"characters array","items":{"description":"character integer","format":"int32","title":"post_characters_character_id_cspa_character","type":"integer"},"maxItems":100,"minItems":1,"title":"post_characters_character_id_cspa_characters","type":"array","uniqueItems":true}},"required":["characters"],"title":"post_characters_character_id_cspa_characters","type":"object"}},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"201":{"description":"Aggregate cost of sending a mail from the source character to the target characters, in ISK hundredths","examples":{"application/json":{"cost":295000}},"schema":{"description":"201 created object","properties":{"cost":{"description":"cost integer","format":"int64","title":"post_characters_character_id_cspa_cost","type":"integer"}},"title":"post_characters_character_id_cspa_created","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-characters.read_contacts.v1"]}],"summary":"Calculate a CSPA charge cost","tags":["Character"],"x-alternate-versions":["legacy","v3"]}},"/v3/characters/{character_id}/mail/labels/":{"get":{"description":"Return a list of the users mail labels, unread counts for each label and a total unread count.\n\n---\n\nThis route is cached for up to 30 seconds","operationId":"get_characters_character_id_mail_labels","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of mail labels and unread counts","examples":{"application/json":{"labels":[{"color_hex":"#660066","label_id":16,"name":"PINK","unread_count":4},{"color_hex":"#ffffff","label_id":17,"name":"WHITE","unread_count":1}],"total_unread_count":5}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"labels":{"description":"labels array","items":{"description":"label object","properties":{"color":{"default":"#ffffff","description":"color string","enum":["#0000fe","#006634","#0099ff","#00ff33","#01ffff","#349800","#660066","#666666","#999999","#99ffff","#9a0000","#ccff9a","#e6e6e6","#fe0000","#ff6600","#ffff01","#ffffcd","#ffffff"],"title":"get_characters_character_id_mail_labels_color","type":"string"},"label_id":{"description":"label_id integer","format":"int32","minimum":0,"title":"get_characters_character_id_mail_labels_label_id","type":"integer"},"name":{"description":"name string","maxLength":40,"title":"get_characters_character_id_mail_labels_name","type":"string"},"unread_count":{"description":"unread_count integer","format":"int32","minimum":0,"title":"get_characters_character_id_mail_labels_unread_count","type":"integer"}},"title":"get_characters_character_id_mail_labels_label","type":"object"},"maxItems":30,"title":"get_characters_character_id_mail_labels_labels","type":"array"},"total_unread_count":{"description":"total_unread_count integer","format":"int32","minimum":0,"title":"get_characters_character_id_mail_labels_total_unread_count","type":"integer"}},"title":"get_characters_character_id_mail_labels_ok","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-mail.read_mail.v1"]}],"summary":"Get mail labels and unread counts","tags":["Mail"],"x-alternate-versions":["dev","v3"],"x-cached-seconds":30}},"/v3/characters/{character_id}/planets/{planet_id}/":{"get":{"description":"Returns full details on the layout of a single planetary colony, including links, pins and routes. Note: Planetary information is only recalculated when the colony is viewed through the client. Information will not update until this criteria is met.\n\n---\n\nThis route is cached for up to 600 seconds","operationId":"get_characters_character_id_planets_planet_id","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"description":"Planet id of the target planet","format":"int32","in":"path","name":"planet_id","required":true,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Colony layout","examples":{"application/json":{"links":[{"destination_pin_id":1000000017022,"link_level":0,"source_pin_id":1000000017021}],"pins":[{"is_running":true,"latitude":1.55087844973,"longitude":0.717145933308,"pin_id":1000000017021,"type_id":2254},{"is_running":true,"latitude":1.53360639935,"longitude":0.709775584394,"pin_id":1000000017022,"type_id":2256}],"routes":[{"content_type_id":2393,"destination_pin_id":1000000017030,"quantity":20,"route_id":4,"source_pin_id":1000000017029}]}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"links":{"description":"links array","items":{"description":"link object","properties":{"destination_pin_id":{"description":"destination_pin_id integer","format":"int64","title":"get_characters_character_id_planets_planet_id_destination_pin_id","type":"integer"},"link_level":{"description":"link_level integer","format":"int32","maximum":10,"minimum":0,"title":"get_characters_character_id_planets_planet_id_link_level","type":"integer"},"source_pin_id":{"description":"source_pin_id integer","format":"int64","title":"get_characters_character_id_planets_planet_id_source_pin_id","type":"integer"}},"required":["source_pin_id","destination_pin_id","link_level"],"title":"get_characters_character_id_planets_planet_id_link","type":"object"},"maxItems":500,"title":"get_characters_character_id_planets_planet_id_links","type":"array"},"pins":{"description":"pins array","items":{"description":"pin object","properties":{"contents":{"description":"contents array","items":{"description":"content object","properties":{"amount":{"description":"amount integer","format":"int64","title":"get_characters_character_id_planets_planet_id_amount","type":"integer"},"type_id":{"description":"type_id integer","format":"int32","title":"get_characters_character_id_planets_planet_id_type_id","type":"integer"}},"required":["type_id","amount"],"title":"get_characters_character_id_planets_planet_id_content","type":"object"},"maxItems":90,"title":"get_characters_character_id_planets_planet_id_contents","type":"array"},"expiry_time":{"description":"expiry_time string","format":"date-time","title":"get_characters_character_id_planets_planet_id_expiry_time","type":"string"},"extractor_details":{"description":"extractor_details object","properties":{"cycle_time":{"description":"in seconds","format":"int32","title":"get_characters_character_id_planets_planet_id_cycle_time","type":"integer"},"head_radius":{"description":"head_radius number","format":"float","title":"get_characters_character_id_planets_planet_id_head_radius","type":"number"},"heads":{"description":"heads array","items":{"description":"head object","properties":{"head_id":{"description":"head_id integer","format":"int32","maximum":9,"minimum":0,"title":"get_characters_character_id_planets_planet_id_head_id","type":"integer"},"latitude":{"description":"latitude number","format":"float","title":"get_characters_character_id_planets_planet_id_latitude","type":"number"},"longitude":{"description":"longitude number","format":"float","title":"get_characters_character_id_planets_planet_id_longitude","type":"number"}},"required":["head_id","latitude","longitude"],"title":"get_characters_character_id_planets_planet_id_head","type":"object"},"maxItems":10,"title":"get_characters_character_id_planets_planet_id_heads","type":"array"},"product_type_id":{"description":"product_type_id integer","format":"int32","title":"get_characters_character_id_planets_planet_id_product_type_id","type":"integer"},"qty_per_cycle":{"description":"qty_per_cycle integer","format":"int32","title":"get_characters_character_id_planets_planet_id_qty_per_cycle","type":"integer"}},"required":["heads"],"title":"get_characters_character_id_planets_planet_id_extractor_details","type":"object"},"factory_details":{"description":"factory_details object","properties":{"schematic_id":{"description":"schematic_id integer","format":"int32","title":"get_characters_character_id_planets_planet_id_schematic_id","type":"integer"}},"required":["schematic_id"],"title":"get_characters_character_id_planets_planet_id_factory_details","type":"object"},"install_time":{"description":"install_time string","format":"date-time","title":"get_characters_character_id_planets_planet_id_install_time","type":"string"},"last_cycle_start":{"description":"last_cycle_start string","format":"date-time","title":"get_characters_character_id_planets_planet_id_last_cycle_start","type":"string"},"latitude":{"description":"latitude number","format":"float","title":"get_characters_character_id_planets_planet_id_latitude","type":"number"},"longitude":{"description":"longitude number","format":"float","title":"get_characters_character_id_planets_planet_id_longitude","type":"number"},"pin_id":{"description":"pin_id integer","format":"int64","title":"get_characters_character_id_planets_planet_id_pin_id","type":"integer"},"schematic_id":{"description":"schematic_id integer","format":"int32","title":"get_characters_character_id_planets_planet_id_schematic_id","type":"integer"},"type_id":{"description":"type_id integer","format":"int32","title":"get_characters_character_id_planets_planet_id_type_id","type":"integer"}},"required":["pin_id","type_id","latitude","longitude"],"title":"get_characters_character_id_planets_planet_id_pin","type":"object"},"maxItems":100,"title":"get_characters_character_id_planets_planet_id_pins","type":"array"},"routes":{"description":"routes array","items":{"description":"route object","properties":{"content_type_id":{"description":"content_type_id integer","format":"int32","title":"get_characters_character_id_planets_planet_id_content_type_id","type":"integer"},"destination_pin_id":{"description":"destination_pin_id integer","format":"int64","title":"get_characters_character_id_planets_planet_id_destination_pin_id","type":"integer"},"quantity":{"description":"quantity number","format":"float","title":"get_characters_character_id_planets_planet_id_quantity","type":"number"},"route_id":{"description":"route_id integer","format":"int64","title":"get_characters_character_id_planets_planet_id_route_id","type":"integer"},"source_pin_id":{"description":"source_pin_id integer","format":"int64","title":"get_characters_character_id_planets_planet_id_source_pin_id","type":"integer"},"waypoints":{"description":"list of pin ID waypoints","items":{"description":"waypoint integer","format":"int64","title":"get_characters_character_id_planets_planet_id_waypoint","type":"integer"},"maxItems":5,"title":"get_characters_character_id_planets_planet_id_waypoints","type":"array"}},"required":["route_id","source_pin_id","destination_pin_id","content_type_id","quantity"],"title":"get_characters_character_id_planets_planet_id_route","type":"object"},"maxItems":1000,"title":"get_characters_character_id_planets_planet_id_routes","type":"array"}},"required":["links","pins","routes"],"title":"get_characters_character_id_planets_planet_id_ok","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"404":{"description":"Colony not found","examples":{"application/json":{"error":"Colony not found"}},"schema":{"description":"Colony not found","properties":{"error":{"description":"error message","title":"get_characters_character_id_planets_planet_id_error","type":"string"}},"title":"get_characters_character_id_planets_planet_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-planets.manage_planets.v1"]}],"summary":"Get colony layout","tags":["Planetary Interaction"],"x-alternate-versions":["dev","v3"],"x-cached-seconds":600}},"/v3/characters/{character_id}/skills/":{"get":{"description":"List all trained skills for the given character\n\n---\n\nThis route is cached for up to 120 seconds","operationId":"get_characters_character_id_skills","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Known skills for the character","examples":{"application/json":{"skills":[{"current_skill_level":1,"skill_id":1,"skillpoints_in_skill":10000},{"current_skill_level":1,"skill_id":2,"skillpoints_in_skill":10000}],"total_sp":20000}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"skills":{"description":"skills array","items":{"description":"skill object","properties":{"current_skill_level":{"description":"current_skill_level integer","format":"int32","title":"get_characters_character_id_skills_current_skill_level","type":"integer"},"skill_id":{"description":"skill_id integer","format":"int32","title":"get_characters_character_id_skills_skill_id","type":"integer"},"skillpoints_in_skill":{"description":"skillpoints_in_skill integer","format":"int64","title":"get_characters_character_id_skills_skillpoints_in_skill","type":"integer"}},"title":"get_characters_character_id_skills_skill","type":"object"},"maxItems":1000,"title":"get_characters_character_id_skills_skills","type":"array"},"total_sp":{"description":"total_sp integer","format":"int64","title":"get_characters_character_id_skills_total_sp","type":"integer"}},"title":"get_characters_character_id_skills_ok","type":"object"}},"403":{"description":"Forbidden","examples":{"application/json":{"error":"Forbidden message"}},"schema":{"$ref":"#/definitions/forbidden"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"security":[{"evesso":["esi-skills.read_skills.v1"]}],"summary":"Get character skills","tags":["Skills"],"x-alternate-versions":["v3"],"x-cached-seconds":120}},"/v3/corporations/{corporation_id}/":{"get":{"description":"Public information about a corporation\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_corporations_corporation_id","parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Public data about a corporation","examples":{"application/json":{"alliance_id":434243723,"ceo_id":180548812,"corporation_description":"This is a corporation description, it's basically just a string","corporation_name":"C C P","creation_date":"2004-11-28T16:42:51Z","creator_id":180548812,"member_count":656,"tax_rate":0.256,"ticker":"-CCP-","url":"http://www.eveonline.com"}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"alliance_id":{"description":"id of alliance that corporation is a member of, if any","format":"int32","title":"get_corporations_corporation_id_alliance_id","type":"integer"},"ceo_id":{"description":"ceo_id integer","format":"int32","title":"get_corporations_corporation_id_ceo_id","type":"integer"},"corporation_description":{"description":"corporation_description string","title":"get_corporations_corporation_id_corporation_description","type":"string"},"corporation_name":{"description":"the full name of the corporation","title":"get_corporations_corporation_id_corporation_name","type":"string"},"creation_date":{"description":"creation_date string","format":"date-time","title":"get_corporations_corporation_id_creation_date","type":"string"},"creator_id":{"description":"creator_id integer","format":"int32","title":"get_corporations_corporation_id_creator_id","type":"integer"},"faction":{"description":"faction string","enum":["Minmatar","Gallente","Caldari","Amarr"],"title":"get_corporations_corporation_id_faction","type":"string"},"member_count":{"description":"member_count integer","format":"int32","title":"get_corporations_corporation_id_member_count","type":"integer"},"tax_rate":{"description":"tax_rate number","format":"float","maximum":1,"minimum":0,"title":"get_corporations_corporation_id_tax_rate","type":"number"},"ticker":{"description":"the short name of the corporation","title":"get_corporations_corporation_id_ticker","type":"string"},"url":{"description":"url string","title":"get_corporations_corporation_id_url","type":"string"}},"required":["corporation_name","ticker","member_count","ceo_id","corporation_description","tax_rate","creator_id","url"],"title":"get_corporations_corporation_id_ok","type":"object"}},"404":{"description":"Corporation not found","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_corporations_corporation_id_404_not_found","type":"string"}},"title":"get_corporations_corporation_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get corporation information","tags":["Corporation"],"x-alternate-versions":["v3"],"x-cached-seconds":3600}},"/v3/universe/systems/{system_id}/":{"get":{"description":"Get information on a solar system\n\n---\n\nThis route expires daily at 11:05","operationId":"get_universe_systems_system_id","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"description":"system_id integer","format":"int32","in":"path","name":"system_id","required":true,"type":"integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a solar system","examples":{"application/json":{"constellation_id":20000001,"name":"Akpivem","planets":[{"moons":[40000042],"planet_id":40000041},{"planet_id":40000043}],"position":{"x":-91174141133075340,"y":43938227486247170,"z":-56482824383339900},"security_class":"B","security_status":0.8462923765182495,"star_id":40000040,"stargates":[50000342],"system_id":30000003}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Content-Language":{"description":"The language used in the response","enum":["de","en-us","fr","ja","ru","zh"],"type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"constellation_id":{"description":"The constellation this solar system is in","format":"int32","title":"get_universe_systems_system_id_constellation_id","type":"integer"},"name":{"description":"name string","title":"get_universe_systems_system_id_name","type":"string"},"planets":{"description":"planets array","items":{"description":"planet object","properties":{"moons":{"description":"moons array","items":{"description":"moon integer","format":"int32","title":"get_universe_systems_system_id_moon","type":"integer"},"maxItems":1000,"title":"get_universe_systems_system_id_moons","type":"array"},"planet_id":{"description":"planet_id integer","format":"int32","title":"get_universe_systems_system_id_planet_id","type":"integer"}},"required":["planet_id"],"title":"get_universe_systems_system_id_planet","type":"object"},"maxItems":1000,"title":"get_universe_systems_system_id_planets","type":"array"},"position":{"description":"position object","properties":{"x":{"description":"x number","format":"float","title":"get_universe_systems_system_id_x","type":"number"},"y":{"description":"y number","format":"float","title":"get_universe_systems_system_id_y","type":"number"},"z":{"description":"z number","format":"float","title":"get_universe_systems_system_id_z","type":"number"}},"required":["x","y","z"],"title":"get_universe_systems_system_id_position","type":"object"},"security_class":{"description":"security_class string","title":"get_universe_systems_system_id_security_class","type":"string"},"security_status":{"description":"security_status number","format":"float","title":"get_universe_systems_system_id_security_status","type":"number"},"star_id":{"description":"star_id integer","format":"int32","title":"get_universe_systems_system_id_star_id","type":"integer"},"stargates":{"description":"stargates array","items":{"description":"stargate integer","format":"int32","title":"get_universe_systems_system_id_stargate","type":"integer"},"maxItems":25,"title":"get_universe_systems_system_id_stargates","type":"array"},"stations":{"description":"stations array","items":{"description":"station integer","format":"int32","title":"get_universe_systems_system_id_station","type":"integer"},"maxItems":25,"title":"get_universe_systems_system_id_stations","type":"array"},"system_id":{"description":"system_id integer","format":"int32","title":"get_universe_systems_system_id_system_id","type":"integer"}},"required":["star_id","system_id","name","position","security_status","constellation_id","planets"],"title":"get_universe_systems_system_id_ok","type":"object"}},"404":{"description":"Solar system not found","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_universe_systems_system_id_404_not_found","type":"string"}},"title":"get_universe_systems_system_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get solar system information","tags":["Universe"],"x-alternate-versions":["dev","v3"]}},"/v3/universe/types/{type_id}/":{"get":{"description":"Get information on a type\n\n---\n\nThis route expires daily at 11:05","operationId":"get_universe_types_type_id","parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"description":"An Eve item type ID","format":"int32","in":"path","name":"type_id","required":true,"type":"integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a type","examples":{"application/json":{"description":"The Rifter is a...","group_id":25,"name":"Rifter","published":true,"type_id":587}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Content-Language":{"description":"The language used in the response","enum":["de","en-us","fr","ja","ru","zh"],"type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"capacity":{"description":"capacity number","format":"float","title":"get_universe_types_type_id_capacity","type":"number"},"description":{"description":"description string","title":"get_universe_types_type_id_description","type":"string"},"dogma_attributes":{"description":"dogma_attributes array","items":{"description":"dogma_attribute object","properties":{"attribute_id":{"description":"attribute_id integer","format":"int32","title":"get_universe_types_type_id_attribute_id","type":"integer"},"value":{"description":"value number","format":"float","title":"get_universe_types_type_id_value","type":"number"}},"required":["attribute_id","value"],"title":"get_universe_types_type_id_dogma_attribute","type":"object"},"maxItems":1000,"title":"get_universe_types_type_id_dogma_attributes","type":"array"},"dogma_effects":{"description":"dogma_effects array","items":{"description":"dogma_effect object","properties":{"effect_id":{"description":"effect_id integer","format":"int32","title":"get_universe_types_type_id_effect_id","type":"integer"},"is_default":{"description":"is_default boolean","title":"get_universe_types_type_id_is_default","type":"boolean"}},"required":["effect_id","is_default"],"title":"get_universe_types_type_id_dogma_effect","type":"object"},"maxItems":1000,"title":"get_universe_types_type_id_dogma_effects","type":"array"},"graphic_id":{"description":"graphic_id integer","format":"int32","title":"get_universe_types_type_id_graphic_id","type":"integer"},"group_id":{"description":"group_id integer","format":"int32","title":"get_universe_types_type_id_group_id","type":"integer"},"icon_id":{"description":"icon_id integer","format":"int32","title":"get_universe_types_type_id_icon_id","type":"integer"},"market_group_id":{"description":"This only exists for types that can be put on the market","format":"int32","title":"get_universe_types_type_id_market_group_id","type":"integer"},"mass":{"description":"mass number","format":"float","title":"get_universe_types_type_id_mass","type":"number"},"name":{"description":"name string","title":"get_universe_types_type_id_name","type":"string"},"packaged_volume":{"description":"packaged_volume number","format":"float","title":"get_universe_types_type_id_packaged_volume","type":"number"},"portion_size":{"description":"portion_size integer","format":"int32","title":"get_universe_types_type_id_portion_size","type":"integer"},"published":{"description":"published boolean","title":"get_universe_types_type_id_published","type":"boolean"},"radius":{"description":"radius number","format":"float","title":"get_universe_types_type_id_radius","type":"number"},"type_id":{"description":"type_id integer","format":"int32","title":"get_universe_types_type_id_type_id","type":"integer"},"volume":{"description":"volume number","format":"float","title":"get_universe_types_type_id_volume","type":"number"}},"required":["type_id","name","description","published","group_id"],"title":"get_universe_types_type_id_ok","type":"object"}},"404":{"description":"Type not found","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_universe_types_type_id_404_not_found","type":"string"}},"title":"get_universe_types_type_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get type information","tags":["Universe"],"x-alternate-versions":["dev","v3"]}},"/v4/characters/{character_id}/":{"get":{"description":"Public information about a character\n\n---\n\nThis route is cached for up to 3600 seconds","operationId":"get_characters_character_id","parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Public data for the given character","examples":{"application/json":{"ancestry_id":19,"birthday":"2015-03-24T11:37:00Z","bloodline_id":3,"corporation_id":109299958,"description":"","gender":"male","name":"CCP Bartender","race_id":2}},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"}},"schema":{"description":"200 ok object","properties":{"alliance_id":{"description":"The character's alliance ID","format":"int32","title":"get_characters_character_id_alliance_id","type":"integer"},"ancestry_id":{"description":"ancestry_id integer","format":"int32","title":"get_characters_character_id_ancestry_id","type":"integer"},"birthday":{"description":"Creation date of the character","format":"date-time","title":"get_characters_character_id_birthday","type":"string"},"bloodline_id":{"description":"bloodline_id integer","format":"int32","title":"get_characters_character_id_bloodline_id","type":"integer"},"corporation_id":{"description":"The character's corporation ID","format":"int32","title":"get_characters_character_id_corporation_id","type":"integer"},"description":{"description":"description string","title":"get_characters_character_id_description","type":"string"},"gender":{"description":"gender string","enum":["female","male"],"title":"get_characters_character_id_gender","type":"string"},"name":{"description":"name string","title":"get_characters_character_id_name","type":"string"},"race_id":{"description":"race_id integer","format":"int32","title":"get_characters_character_id_race_id","type":"integer"},"security_status":{"description":"security_status number","format":"float","maximum":10,"minimum":-10,"title":"get_characters_character_id_security_status","type":"number"}},"required":["corporation_id","birthday","name","gender","race_id","bloodline_id"],"title":"get_characters_character_id_ok","type":"object"}},"404":{"description":"Character not found","examples":{"application/json":{"error":"Not found message"}},"schema":{"description":"Not found","properties":{"error":{"description":"Not found message","title":"get_characters_character_id_404_not_found","type":"string"}},"title":"get_characters_character_id_not_found","type":"object"}},"500":{"description":"Internal server error","examples":{"application/json":{"error":"Internal server error message"}},"schema":{"$ref":"#/definitions/internal_server_error"}}},"summary":"Get character's public information","tags":["Character"],"x-alternate-versions":["dev","v4"],"x-cached-seconds":3600}}},"produces":["application/json"],"schemes":["https"],"securityDefinitions":{"evesso":{"authorizationUrl":"https://login.eveonline.com/oauth/authorize","flow":"implicit","scopes":{"esi-assets.read_assets.v1":"EVE SSO scope esi-assets.read_assets.v1","esi-assets.read_corporation_assets.v1":"EVE SSO scope esi-assets.read_corporation_assets.v1","esi-bookmarks.read_character_bookmarks.v1":"EVE SSO scope esi-bookmarks.read_character_bookmarks.v1","esi-bookmarks.read_corporation_bookmarks.v1":"EVE SSO scope esi-bookmarks.read_corporation_bookmarks.v1","esi-calendar.read_calendar_events.v1":"EVE SSO scope esi-calendar.read_calendar_events.v1","esi-calendar.respond_calendar_events.v1":"EVE SSO scope esi-calendar.respond_calendar_events.v1","esi-characters.read_agents_research.v1":"EVE SSO scope esi-characters.read_agents_research.v1","esi-characters.read_blueprints.v1":"EVE SSO scope esi-characters.read_blueprints.v1","esi-characters.read_chat_channels.v1":"EVE SSO scope esi-characters.read_chat_channels.v1","esi-characters.read_contacts.v1":"EVE SSO scope esi-characters.read_contacts.v1","esi-characters.read_corporation_roles.v1":"EVE SSO scope esi-characters.read_corporation_roles.v1","esi-characters.read_fatigue.v1":"EVE SSO scope esi-characters.read_fatigue.v1","esi-characters.read_loyalty.v1":"EVE SSO scope esi-characters.read_loyalty.v1","esi-characters.read_medals.v1":"EVE SSO scope esi-characters.read_medals.v1","esi-characters.read_notifications.v1":"EVE SSO scope esi-characters.read_notifications.v1","esi-characters.read_opportunities.v1":"EVE SSO scope esi-characters.read_opportunities.v1","esi-characters.read_standings.v1":"EVE SSO scope esi-characters.read_standings.v1","esi-characters.write_contacts.v1":"EVE SSO scope esi-characters.write_contacts.v1","esi-clones.read_clones.v1":"EVE SSO scope esi-clones.read_clones.v1","esi-clones.read_implants.v1":"EVE SSO scope esi-clones.read_implants.v1","esi-contracts.read_character_contracts.v1":"EVE SSO scope esi-contracts.read_character_contracts.v1","esi-contracts.read_corporation_contracts.v1":"EVE SSO scope esi-contracts.read_corporation_contracts.v1","esi-corporations.read_blueprints.v1":"EVE SSO scope esi-corporations.read_blueprints.v1","esi-corporations.read_contacts.v1":"EVE SSO scope esi-corporations.read_contacts.v1","esi-corporations.read_container_logs.v1":"EVE SSO scope esi-corporations.read_container_logs.v1","esi-corporations.read_corporation_membership.v1":"EVE SSO scope esi-corporations.read_corporation_membership.v1","esi-corporations.read_divisions.v1":"EVE SSO scope esi-corporations.read_divisions.v1","esi-corporations.read_standings.v1":"EVE SSO scope esi-corporations.read_standings.v1","esi-corporations.read_structures.v1":"EVE SSO scope esi-corporations.read_structures.v1","esi-corporations.read_titles.v1":"EVE SSO scope esi-corporations.read_titles.v1","esi-corporations.track_members.v1":"EVE SSO scope esi-corporations.track_members.v1","esi-corporations.write_structures.v1":"EVE SSO scope esi-corporations.write_structures.v1","esi-fittings.read_fittings.v1":"EVE SSO scope esi-fittings.read_fittings.v1","esi-fittings.write_fittings.v1":"EVE SSO scope esi-fittings.write_fittings.v1","esi-fleets.read_fleet.v1":"EVE SSO scope esi-fleets.read_fleet.v1","esi-fleets.write_fleet.v1":"EVE SSO scope esi-fleets.write_fleet.v1","esi-industry.read_character_jobs.v1":"EVE SSO scope esi-industry.read_character_jobs.v1","esi-industry.read_corporation_jobs.v1":"EVE SSO scope esi-industry.read_corporation_jobs.v1","esi-killmails.read_corporation_killmails.v1":"EVE SSO scope esi-killmails.read_corporation_killmails.v1","esi-killmails.read_killmails.v1":"EVE SSO scope esi-killmails.read_killmails.v1","esi-location.read_location.v1":"EVE SSO scope esi-location.read_location.v1","esi-location.read_online.v1":"EVE SSO scope esi-location.read_online.v1","esi-location.read_ship_type.v1":"EVE SSO scope esi-location.read_ship_type.v1","esi-mail.organize_mail.v1":"EVE SSO scope esi-mail.organize_mail.v1","esi-mail.read_mail.v1":"EVE SSO scope esi-mail.read_mail.v1","esi-mail.send_mail.v1":"EVE SSO scope esi-mail.send_mail.v1","esi-markets.read_character_orders.v1":"EVE SSO scope esi-markets.read_character_orders.v1","esi-markets.read_corporation_orders.v1":"EVE SSO scope esi-markets.read_corporation_orders.v1","esi-markets.structure_markets.v1":"EVE SSO scope esi-markets.structure_markets.v1","esi-planets.manage_planets.v1":"EVE SSO scope esi-planets.manage_planets.v1","esi-search.search_structures.v1":"EVE SSO scope esi-search.search_structures.v1","esi-skills.read_skillqueue.v1":"EVE SSO scope esi-skills.read_skillqueue.v1","esi-skills.read_skills.v1":"EVE SSO scope esi-skills.read_skills.v1","esi-ui.open_window.v1":"EVE SSO scope esi-ui.open_window.v1","esi-ui.write_waypoint.v1":"EVE SSO scope esi-ui.write_waypoint.v1","esi-universe.read_structures.v1":"EVE SSO scope esi-universe.read_structures.v1","esi-wallet.read_character_wallet.v1":"EVE SSO scope esi-wallet.read_character_wallet.v1","esi-wallet.read_corporation_wallets.v1":"EVE SSO scope esi-wallet.read_corporation_wallets.v1"},"type":"oauth2"}},"swagger":"2.0"} \ No newline at end of file +{"swagger":"2.0","info":{"title":"EVE Swagger Interface","description":"An OpenAPI for EVE Online","version":"0.7.5"},"host":"esi.tech.ccp.is","schemes":["https"],"produces":["application/json"],"securityDefinitions":{"evesso":{"type":"oauth2","authorizationUrl":"https://login.eveonline.com/oauth/authorize","flow":"implicit","scopes":{"esi-alliances.read_contacts.v1":"EVE SSO scope esi-alliances.read_contacts.v1","esi-assets.read_assets.v1":"EVE SSO scope esi-assets.read_assets.v1","esi-assets.read_corporation_assets.v1":"EVE SSO scope esi-assets.read_corporation_assets.v1","esi-bookmarks.read_character_bookmarks.v1":"EVE SSO scope esi-bookmarks.read_character_bookmarks.v1","esi-bookmarks.read_corporation_bookmarks.v1":"EVE SSO scope esi-bookmarks.read_corporation_bookmarks.v1","esi-calendar.read_calendar_events.v1":"EVE SSO scope esi-calendar.read_calendar_events.v1","esi-calendar.respond_calendar_events.v1":"EVE SSO scope esi-calendar.respond_calendar_events.v1","esi-characters.read_agents_research.v1":"EVE SSO scope esi-characters.read_agents_research.v1","esi-characters.read_blueprints.v1":"EVE SSO scope esi-characters.read_blueprints.v1","esi-characters.read_chat_channels.v1":"EVE SSO scope esi-characters.read_chat_channels.v1","esi-characters.read_contacts.v1":"EVE SSO scope esi-characters.read_contacts.v1","esi-characters.read_corporation_roles.v1":"EVE SSO scope esi-characters.read_corporation_roles.v1","esi-characters.read_fatigue.v1":"EVE SSO scope esi-characters.read_fatigue.v1","esi-characters.read_fw_stats.v1":"EVE SSO scope esi-characters.read_fw_stats.v1","esi-characters.read_loyalty.v1":"EVE SSO scope esi-characters.read_loyalty.v1","esi-characters.read_medals.v1":"EVE SSO scope esi-characters.read_medals.v1","esi-characters.read_notifications.v1":"EVE SSO scope esi-characters.read_notifications.v1","esi-characters.read_opportunities.v1":"EVE SSO scope esi-characters.read_opportunities.v1","esi-characters.read_standings.v1":"EVE SSO scope esi-characters.read_standings.v1","esi-characters.read_titles.v1":"EVE SSO scope esi-characters.read_titles.v1","esi-characters.write_contacts.v1":"EVE SSO scope esi-characters.write_contacts.v1","esi-characterstats.read.v1":"EVE SSO scope esi-characterstats.read.v1","esi-clones.read_clones.v1":"EVE SSO scope esi-clones.read_clones.v1","esi-clones.read_implants.v1":"EVE SSO scope esi-clones.read_implants.v1","esi-contracts.read_character_contracts.v1":"EVE SSO scope esi-contracts.read_character_contracts.v1","esi-contracts.read_corporation_contracts.v1":"EVE SSO scope esi-contracts.read_corporation_contracts.v1","esi-corporations.read_blueprints.v1":"EVE SSO scope esi-corporations.read_blueprints.v1","esi-corporations.read_contacts.v1":"EVE SSO scope esi-corporations.read_contacts.v1","esi-corporations.read_container_logs.v1":"EVE SSO scope esi-corporations.read_container_logs.v1","esi-corporations.read_corporation_membership.v1":"EVE SSO scope esi-corporations.read_corporation_membership.v1","esi-corporations.read_divisions.v1":"EVE SSO scope esi-corporations.read_divisions.v1","esi-corporations.read_facilities.v1":"EVE SSO scope esi-corporations.read_facilities.v1","esi-corporations.read_fw_stats.v1":"EVE SSO scope esi-corporations.read_fw_stats.v1","esi-corporations.read_medals.v1":"EVE SSO scope esi-corporations.read_medals.v1","esi-corporations.read_outposts.v1":"EVE SSO scope esi-corporations.read_outposts.v1","esi-corporations.read_standings.v1":"EVE SSO scope esi-corporations.read_standings.v1","esi-corporations.read_starbases.v1":"EVE SSO scope esi-corporations.read_starbases.v1","esi-corporations.read_structures.v1":"EVE SSO scope esi-corporations.read_structures.v1","esi-corporations.read_titles.v1":"EVE SSO scope esi-corporations.read_titles.v1","esi-corporations.track_members.v1":"EVE SSO scope esi-corporations.track_members.v1","esi-fittings.read_fittings.v1":"EVE SSO scope esi-fittings.read_fittings.v1","esi-fittings.write_fittings.v1":"EVE SSO scope esi-fittings.write_fittings.v1","esi-fleets.read_fleet.v1":"EVE SSO scope esi-fleets.read_fleet.v1","esi-fleets.write_fleet.v1":"EVE SSO scope esi-fleets.write_fleet.v1","esi-industry.read_character_jobs.v1":"EVE SSO scope esi-industry.read_character_jobs.v1","esi-industry.read_character_mining.v1":"EVE SSO scope esi-industry.read_character_mining.v1","esi-industry.read_corporation_jobs.v1":"EVE SSO scope esi-industry.read_corporation_jobs.v1","esi-industry.read_corporation_mining.v1":"EVE SSO scope esi-industry.read_corporation_mining.v1","esi-killmails.read_corporation_killmails.v1":"EVE SSO scope esi-killmails.read_corporation_killmails.v1","esi-killmails.read_killmails.v1":"EVE SSO scope esi-killmails.read_killmails.v1","esi-location.read_location.v1":"EVE SSO scope esi-location.read_location.v1","esi-location.read_online.v1":"EVE SSO scope esi-location.read_online.v1","esi-location.read_ship_type.v1":"EVE SSO scope esi-location.read_ship_type.v1","esi-mail.organize_mail.v1":"EVE SSO scope esi-mail.organize_mail.v1","esi-mail.read_mail.v1":"EVE SSO scope esi-mail.read_mail.v1","esi-mail.send_mail.v1":"EVE SSO scope esi-mail.send_mail.v1","esi-markets.read_character_orders.v1":"EVE SSO scope esi-markets.read_character_orders.v1","esi-markets.read_corporation_orders.v1":"EVE SSO scope esi-markets.read_corporation_orders.v1","esi-markets.structure_markets.v1":"EVE SSO scope esi-markets.structure_markets.v1","esi-planets.manage_planets.v1":"EVE SSO scope esi-planets.manage_planets.v1","esi-planets.read_customs_offices.v1":"EVE SSO scope esi-planets.read_customs_offices.v1","esi-search.search_structures.v1":"EVE SSO scope esi-search.search_structures.v1","esi-skills.read_skillqueue.v1":"EVE SSO scope esi-skills.read_skillqueue.v1","esi-skills.read_skills.v1":"EVE SSO scope esi-skills.read_skills.v1","esi-ui.open_window.v1":"EVE SSO scope esi-ui.open_window.v1","esi-ui.write_waypoint.v1":"EVE SSO scope esi-ui.write_waypoint.v1","esi-universe.read_structures.v1":"EVE SSO scope esi-universe.read_structures.v1","esi-wallet.read_character_wallet.v1":"EVE SSO scope esi-wallet.read_character_wallet.v1","esi-wallet.read_corporation_wallets.v1":"EVE SSO scope esi-wallet.read_corporation_wallets.v1"}}},"parameters":{"datasource":{"name":"datasource","description":"The server name you would like data from","in":"query","type":"string","default":"tranquility","enum":["tranquility","singularity"]},"user_agent":{"name":"user_agent","description":"Client identifier, takes precedence over headers","in":"query","type":"string"},"X-User-Agent":{"name":"X-User-Agent","description":"Client identifier, takes precedence over User-Agent","in":"header","type":"string"},"token":{"name":"token","description":"Access token to use if unable to set a header","in":"query","type":"string"},"character_id":{"description":"An EVE character ID","format":"int32","in":"path","minimum":1,"name":"character_id","required":true,"type":"integer"},"corporation_id":{"description":"An EVE corporation ID","format":"int32","in":"path","minimum":1,"name":"corporation_id","required":true,"type":"integer"},"language":{"name":"language","description":"Language to use in the response","in":"query","type":"string","default":"en-us","enum":["de","en-us","fr","ja","ru","zh"]},"page":{"name":"page","description":"Which page of results to return","in":"query","type":"integer","format":"int32","default":1},"alliance_id":{"description":"An EVE alliance ID","format":"int32","in":"path","minimum":1,"name":"alliance_id","required":true,"type":"integer"}},"definitions":{"internal_server_error":{"type":"object","description":"Internal server error model","title":"Internal server error","required":["error"],"properties":{"error":{"type":"string","description":"Internal server error message"}}},"forbidden":{"type":"object","description":"Forbidden model","title":"Forbidden","required":["error"],"properties":{"error":{"type":"string","description":"Forbidden message"},"sso_status":{"type":"integer","description":"Status code received from SSO"}}}},"paths":{"/v3/alliances/{alliance_id}/":{"get":{"description":"Public information about an alliance\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get alliance information","tags":["Alliance"],"parameters":[{"$ref":"#/parameters/alliance_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Public data about an alliance","examples":{"application/json":{"name":"C C P Alliance","ticker":"","creator_id":12345,"creator_corporation_id":45678,"executor_corporation_id":98356193,"date_founded":"2016-06-26T21:00:00Z"}},"schema":{"type":"object","required":["name","creator_id","creator_corporation_id","ticker","date_founded"],"properties":{"name":{"type":"string","description":"the full name of the alliance","title":"get_alliances_alliance_id_name"},"creator_id":{"type":"integer","format":"int32","description":"ID of the character that created the alliance","title":"get_alliances_alliance_id_creator_id"},"creator_corporation_id":{"type":"integer","format":"int32","description":"ID of the corporation that created the alliance","title":"get_alliances_alliance_id_creator_corporation_id"},"ticker":{"type":"string","description":"the short name of the alliance","title":"get_alliances_alliance_id_ticker"},"executor_corporation_id":{"type":"integer","format":"int32","description":"the executor corporation ID, if this alliance is not closed","title":"get_alliances_alliance_id_executor_corporation_id"},"date_founded":{"type":"string","format":"date-time","title":"get_alliances_alliance_id_date_founded","description":"date_founded string"},"faction_id":{"type":"integer","format":"int32","description":"Faction ID this alliance is fighting for, if this alliance is enlisted in factional warfare","title":"get_alliances_alliance_id_faction_id"}},"title":"get_alliances_alliance_id_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"Alliance not found","schema":{"type":"object","title":"get_alliances_alliance_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_alliances_alliance_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_alliances_alliance_id","x-cached-seconds":3600,"x-alternate-versions":["dev","v3"]}},"/v1/alliances/{alliance_id}/corporations/":{"get":{"description":"List all current member corporations of an alliance\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"List alliance's corporations","tags":["Alliance"],"parameters":[{"$ref":"#/parameters/alliance_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of corporation IDs","examples":{"application/json":[98000001]},"schema":{"type":"array","maxItems":1000,"items":{"type":"integer","format":"int32","minimum":0,"uniqueItems":true,"title":"get_alliances_alliance_id_corporations_200_ok","description":"200 ok integer"},"title":"get_alliances_alliance_id_corporations_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_alliances_alliance_id_corporations","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v2/alliances/names/":{"get":{"description":"Resolve a set of alliance IDs to alliance names\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get alliance names","tags":["Alliance"],"parameters":[{"name":"alliance_ids","in":"query","description":"A comma separated list of alliance IDs","required":true,"type":"array","minItems":1,"maxItems":100,"items":{"type":"integer","format":"int32"}},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of id/name associations","examples":{"application/json":[{"alliance_id":1000171,"alliance_name":"Republic University"}]},"schema":{"type":"array","maxItems":100,"items":{"type":"object","required":["alliance_id","alliance_name"],"properties":{"alliance_id":{"type":"integer","format":"int32","title":"get_alliances_names_alliance_id","description":"alliance_id integer"},"alliance_name":{"type":"string","title":"get_alliances_names_alliance_name","description":"alliance_name string"}},"title":"get_alliances_names_200_ok","description":"200 ok object"},"title":"get_alliances_names_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_alliances_names","x-cached-seconds":3600,"x-alternate-versions":["dev","v2"]}},"/v1/alliances/{alliance_id}/icons/":{"get":{"description":"Get the icon urls for a alliance\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get alliance icon","tags":["Alliance"],"parameters":[{"$ref":"#/parameters/alliance_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Icon URLs for the given alliance id and server","examples":{"application/json":{"px64x64":"https://imageserver.eveonline.com/Alliance/503818424_64.png","px128x128":"https://imageserver.eveonline.com/Alliance/503818424_128.png"}},"schema":{"type":"object","properties":{"px64x64":{"type":"string","title":"get_alliances_alliance_id_icons_px64x64","description":"px64x64 string"},"px128x128":{"type":"string","title":"get_alliances_alliance_id_icons_px128x128","description":"px128x128 string"}},"title":"get_alliances_alliance_id_icons_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"No image server for this datasource","examples":{"application/json":{"error":"No image server for this datasource"}},"schema":{"type":"object","description":"No image server for this datasource","properties":{"error":{"type":"string","description":"error message","title":"get_alliances_alliance_id_icons_error"}},"title":"get_alliances_alliance_id_icons_not_found"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_alliances_alliance_id_icons","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/alliances/":{"get":{"description":"List all active player alliances\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"List all alliances","tags":["Alliance"],"responses":{"200":{"description":"List of Alliance IDs","examples":{"application/json":[99000001,99000002]},"schema":{"type":"array","maxItems":5000,"items":{"type":"integer","format":"int32","minimum":0,"uniqueItems":true,"title":"get_alliances_200_ok","description":"200 ok integer"},"title":"get_alliances_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_alliances","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v3/characters/{character_id}/assets/":{"get":{"description":"Return a list of the characters assets\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get character assets","tags":["Assets"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A flat list of the users assets","examples":{"application/json":[{"location_flag":"Hangar","location_id":60002959,"is_singleton":true,"type_id":3516,"item_id":1000000016835,"location_type":"station","quantity":1}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["type_id","quantity","location_id","location_type","item_id","location_flag","is_singleton"],"properties":{"type_id":{"type":"integer","format":"int32","title":"get_characters_character_id_assets_type_id","description":"type_id integer"},"quantity":{"type":"integer","format":"int32","title":"get_characters_character_id_assets_quantity","description":"quantity integer"},"location_id":{"type":"integer","format":"int64","title":"get_characters_character_id_assets_location_id","description":"location_id integer"},"location_type":{"type":"string","enum":["station","solar_system","other"],"title":"get_characters_character_id_assets_location_type","description":"location_type string"},"item_id":{"type":"integer","format":"int64","title":"get_characters_character_id_assets_item_id","description":"item_id integer"},"location_flag":{"type":"string","enum":["AssetSafety","AutoFit","Cargo","CorpseBay","Deliveries","DroneBay","FighterBay","FighterTube0","FighterTube1","FighterTube2","FighterTube3","FighterTube4","FleetHangar","Hangar","HangarAll","HiSlot0","HiSlot1","HiSlot2","HiSlot3","HiSlot4","HiSlot5","HiSlot6","HiSlot7","HiddenModifiers","Implant","LoSlot0","LoSlot1","LoSlot2","LoSlot3","LoSlot4","LoSlot5","LoSlot6","LoSlot7","Locked","MedSlot0","MedSlot1","MedSlot2","MedSlot3","MedSlot4","MedSlot5","MedSlot6","MedSlot7","QuafeBay","RigSlot0","RigSlot1","RigSlot2","RigSlot3","RigSlot4","RigSlot5","RigSlot6","RigSlot7","ShipHangar","Skill","SpecializedAmmoHold","SpecializedCommandCenterHold","SpecializedFuelBay","SpecializedGasHold","SpecializedIndustrialShipHold","SpecializedLargeShipHold","SpecializedMaterialBay","SpecializedMediumShipHold","SpecializedMineralHold","SpecializedOreHold","SpecializedPlanetaryCommoditiesHold","SpecializedSalvageHold","SpecializedShipHold","SpecializedSmallShipHold","SubSystemBay","SubSystemSlot0","SubSystemSlot1","SubSystemSlot2","SubSystemSlot3","SubSystemSlot4","SubSystemSlot5","SubSystemSlot6","SubSystemSlot7","Unlocked","Wardrobe"],"title":"get_characters_character_id_assets_location_flag","description":"location_flag string"},"is_singleton":{"type":"boolean","title":"get_characters_character_id_assets_is_singleton","description":"is_singleton boolean"}},"title":"get_characters_character_id_assets_200_ok","description":"200 ok object"},"title":"get_characters_character_id_assets_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-assets.read_assets.v1"]}],"operationId":"get_characters_character_id_assets","x-cached-seconds":3600,"x-alternate-versions":["dev","v3"]}},"/v2/corporations/{corporation_id}/assets/":{"get":{"description":"Return a list of the corporation assets\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Director\n\n---\n[This route has an available update](https://esi.tech.ccp.is/diff/latest/dev/#GET-/corporations/{corporation_id}/assets/)","summary":"Get corporation assets","tags":["Assets"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of assets","examples":{"application/json":[{"location_flag":"Hangar","location_id":60002959,"is_singleton":true,"type_id":3516,"item_id":1000000016835,"location_type":"station","quantity":1}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["type_id","quantity","location_id","location_type","item_id","location_flag","is_singleton"],"properties":{"type_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_assets_type_id","description":"type_id integer"},"quantity":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_assets_quantity","description":"quantity integer"},"location_id":{"type":"integer","format":"int64","title":"get_corporations_corporation_id_assets_location_id","description":"location_id integer"},"location_type":{"type":"string","enum":["station","solar_system","other"],"title":"get_corporations_corporation_id_assets_location_type","description":"location_type string"},"item_id":{"type":"integer","format":"int64","title":"get_corporations_corporation_id_assets_item_id","description":"item_id integer"},"is_singleton":{"type":"boolean","title":"get_corporations_corporation_id_assets_is_singleton","description":"is_singleton boolean"},"location_flag":{"type":"string","enum":["AssetSafety","AutoFit","Bonus","Booster","BoosterBay","Capsule","Cargo","CorpDeliveries","CorpSAG1","CorpSAG2","CorpSAG3","CorpSAG4","CorpSAG5","CorpSAG6","CorpSAG7","CrateLoot","Deliveries","DroneBay","DustBattle","DustDatabank","FighterBay","FighterTube0","FighterTube1","FighterTube2","FighterTube3","FighterTube4","FleetHangar","Hangar","HangarAll","HiSlot0","HiSlot1","HiSlot2","HiSlot3","HiSlot4","HiSlot5","HiSlot6","HiSlot7","HiddenModifers","Implant","Impounded","JunkyardReprocessed","JunkyardTrashed","LoSlot0","LoSlot1","LoSlot2","LoSlot3","LoSlot4","LoSlot5","LoSlot6","LoSlot7","Locked","MedSlot0","MedSlot1","MedSlot2","MedSlot3","MedSlot4","MedSlot5","MedSlot6","MedSlot7","OfficeFolder","Pilot","PlanetSurface","QuafeBay","Reward","RigSlot0","RigSlot1","RigSlot2","RigSlot3","RigSlot4","RigSlot5","RigSlot6","RigSlot7","SecondaryStorage","ServiceSlot0","ServiceSlot1","ServiceSlot2","ServiceSlot3","ServiceSlot4","ServiceSlot5","ServiceSlot6","ServiceSlot7","ShipHangar","ShipOffline","Skill","SkillInTraining","SpecializedAmmoHold","SpecializedCommandCenterHold","SpecializedFuelBay","SpecializedGasHold","SpecializedIndustrialShipHold","SpecializedLargeShipHold","SpecializedMaterialBay","SpecializedMediumShipHold","SpecializedMineralHold","SpecializedOreHold","SpecializedPlanetaryCommoditiesHold","SpecializedSalvageHold","SpecializedShipHold","SpecializedSmallShipHold","StructureActive","StructureFuel","StructureInactive","StructureOffline","SubSystemSlot0","SubSystemSlot1","SubSystemSlot2","SubSystemSlot3","SubSystemSlot4","SubSystemSlot5","SubSystemSlot6","SubSystemSlot7","SubsystemBay","Unlocked","Wallet","Wardrobe"],"title":"get_corporations_corporation_id_assets_location_flag","description":"location_flag string"}},"title":"get_corporations_corporation_id_assets_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_assets_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Director"],"security":[{"evesso":["esi-assets.read_corporation_assets.v1"]}],"operationId":"get_corporations_corporation_id_assets","x-cached-seconds":3600,"x-alternate-versions":["v2"]}},"/v1/characters/{character_id}/assets/names/":{"post":{"description":"Return names for a set of item ids, which you can get from character assets endpoint. Typically used for items that can customize names, like containers or ships.\n\n---\n","summary":"Get character asset names","tags":["Assets"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"name":"item_ids","in":"body","description":"A list of item ids","required":true,"schema":{"type":"array","minItems":1,"maxItems":1000,"uniqueItems":true,"items":{"type":"integer","format":"int64","title":"post_characters_character_id_assets_names_item_id","description":"item_id integer"},"title":"post_characters_character_id_assets_names_item_ids","description":"item_ids array"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of asset names","examples":{"application/json":[{"item_id":12345,"name":"Awesome Name"}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["item_id","name"],"properties":{"item_id":{"type":"integer","format":"int64","title":"post_characters_character_id_assets_names_item_id","description":"item_id integer"},"name":{"type":"string","title":"post_characters_character_id_assets_names_name","description":"name string"}},"title":"post_characters_character_id_assets_names_200_ok","description":"200 ok object"},"title":"post_characters_character_id_assets_names_ok","description":"200 ok array"}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-assets.read_assets.v1"]}],"operationId":"post_characters_character_id_assets_names","x-alternate-versions":["dev","legacy","v1"]}},"/v2/characters/{character_id}/assets/locations/":{"post":{"description":"Return locations for a set of item ids, which you can get from character assets endpoint. Coordinates for items in hangars or stations are set to (0,0,0)\n\n---\n","summary":"Get character asset locations","tags":["Assets"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"name":"item_ids","in":"body","description":"A list of item ids","required":true,"schema":{"type":"array","minItems":1,"maxItems":1000,"uniqueItems":true,"items":{"type":"integer","format":"int64","title":"post_characters_character_id_assets_locations_item_id","description":"item_id integer"},"title":"post_characters_character_id_assets_locations_item_ids","description":"item_ids array"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of asset locations","examples":{"application/json":[{"item_id":12345,"position":{"x":1.2,"y":2.3,"z":-3.4}}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["item_id","position"],"properties":{"item_id":{"type":"integer","format":"int64","title":"post_characters_character_id_assets_locations_item_id","description":"item_id integer"},"position":{"type":"object","required":["x","y","z"],"properties":{"x":{"type":"number","format":"double","title":"post_characters_character_id_assets_locations_x","description":"x number"},"y":{"type":"number","format":"double","title":"post_characters_character_id_assets_locations_y","description":"y number"},"z":{"type":"number","format":"double","title":"post_characters_character_id_assets_locations_z","description":"z number"}},"title":"post_characters_character_id_assets_locations_position","description":"position object"}},"title":"post_characters_character_id_assets_locations_200_ok","description":"200 ok object"},"title":"post_characters_character_id_assets_locations_ok","description":"200 ok array"}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-assets.read_assets.v1"]}],"operationId":"post_characters_character_id_assets_locations","x-alternate-versions":["dev","v2"]}},"/v1/corporations/{corporation_id}/assets/names/":{"post":{"description":"Return names for a set of item ids, which you can get from corporation assets endpoint. Only valid for items that can customize names, like containers or ships.\n\n---\n\nRequires one of the following EVE corporation role(s): Director","summary":"Get coporation asset names","tags":["Assets"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"name":"item_ids","in":"body","description":"A list of item ids","required":true,"schema":{"type":"array","minItems":1,"maxItems":1000,"uniqueItems":true,"items":{"type":"integer","format":"int64","title":"post_corporations_corporation_id_assets_names_item_id","description":"item_id integer"},"title":"post_corporations_corporation_id_assets_names_item_ids","description":"item_ids array"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of asset names","examples":{"application/json":[{"item_id":12345,"name":"Awesome Name"}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["item_id","name"],"properties":{"item_id":{"type":"integer","format":"int64","title":"post_corporations_corporation_id_assets_names_item_id","description":"item_id integer"},"name":{"type":"string","title":"post_corporations_corporation_id_assets_names_name","description":"name string"}},"title":"post_corporations_corporation_id_assets_names_200_ok","description":"200 ok object"},"title":"post_corporations_corporation_id_assets_names_ok","description":"200 ok array"}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Director"],"security":[{"evesso":["esi-assets.read_corporation_assets.v1"]}],"operationId":"post_corporations_corporation_id_assets_names","x-alternate-versions":["dev","legacy","v1"]}},"/v2/corporations/{corporation_id}/assets/locations/":{"post":{"description":"Return locations for a set of item ids, which you can get from corporation assets endpoint. Coordinates for items in hangars or stations are set to (0,0,0)\n\n---\n\nRequires one of the following EVE corporation role(s): Director","summary":"Get corporation asset locations","tags":["Assets"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"name":"item_ids","in":"body","description":"A list of item ids","required":true,"schema":{"type":"array","minItems":1,"maxItems":1000,"uniqueItems":true,"items":{"type":"integer","format":"int64","title":"post_corporations_corporation_id_assets_locations_item_id","description":"item_id integer"},"title":"post_corporations_corporation_id_assets_locations_item_ids","description":"item_ids array"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of asset locations","examples":{"application/json":[{"item_id":12345,"position":{"x":1.2,"y":2.3,"z":-3.4}}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["item_id","position"],"properties":{"item_id":{"type":"integer","format":"int64","title":"post_corporations_corporation_id_assets_locations_item_id","description":"item_id integer"},"position":{"type":"object","required":["x","y","z"],"properties":{"x":{"type":"number","format":"double","title":"post_corporations_corporation_id_assets_locations_x","description":"x number"},"y":{"type":"number","format":"double","title":"post_corporations_corporation_id_assets_locations_y","description":"y number"},"z":{"type":"number","format":"double","title":"post_corporations_corporation_id_assets_locations_z","description":"z number"}},"title":"post_corporations_corporation_id_assets_locations_position","description":"position object"}},"title":"post_corporations_corporation_id_assets_locations_200_ok","description":"200 ok object"},"title":"post_corporations_corporation_id_assets_locations_ok","description":"200 ok array"}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Director"],"security":[{"evesso":["esi-assets.read_corporation_assets.v1"]}],"operationId":"post_corporations_corporation_id_assets_locations","x-alternate-versions":["dev","v2"]}},"/v2/characters/{character_id}/bookmarks/":{"get":{"description":"A list of your character's personal bookmarks\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"List bookmarks","tags":["Bookmarks"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of bookmarks","examples":{"application/json":[{"bookmark_id":4,"location_id":30003430,"item":{"type_id":29633,"item_id":50006722},"folder_id":5,"label":"Stargate","notes":"This is a stargate","created":"2016-08-09T11:57:47Z","creator_id":2112625428},{"bookmark_id":5,"location_id":30003430,"coordinates":{"x":-2958928814000,"y":-338367275823,"z":2114538075090},"folder_id":5,"label":"Random location","notes":"This is a random location in space","created":"2016-08-09T11:57:47Z","creator_id":2112625428}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["bookmark_id","created","label","notes","location_id","creator_id"],"properties":{"bookmark_id":{"type":"integer","format":"int32","title":"get_characters_character_id_bookmarks_bookmark_id","description":"bookmark_id integer"},"folder_id":{"type":"integer","format":"int32","title":"get_characters_character_id_bookmarks_folder_id","description":"folder_id integer"},"created":{"type":"string","format":"date-time","title":"get_characters_character_id_bookmarks_created","description":"created string"},"label":{"type":"string","title":"get_characters_character_id_bookmarks_label","description":"label string"},"notes":{"type":"string","title":"get_characters_character_id_bookmarks_notes","description":"notes string"},"location_id":{"type":"integer","format":"int32","title":"get_characters_character_id_bookmarks_location_id","description":"location_id integer"},"creator_id":{"type":"integer","format":"int32","title":"get_characters_character_id_bookmarks_creator_id","description":"creator_id integer"},"item":{"type":"object","description":"Optional object that is returned if a bookmark was made on a particular item.","required":["item_id","type_id"],"properties":{"item_id":{"type":"integer","format":"int64","title":"get_characters_character_id_bookmarks_item_id","description":"item_id integer"},"type_id":{"type":"integer","format":"int32","title":"get_characters_character_id_bookmarks_type_id","description":"type_id integer"}},"title":"get_characters_character_id_bookmarks_item"},"coordinates":{"type":"object","description":"Optional object that is returned if a bookmark was made on a planet or a random location in space.","required":["x","y","z"],"properties":{"x":{"type":"number","format":"double","title":"get_characters_character_id_bookmarks_x","description":"x number"},"y":{"type":"number","format":"double","title":"get_characters_character_id_bookmarks_y","description":"y number"},"z":{"type":"number","format":"double","title":"get_characters_character_id_bookmarks_z","description":"z number"}},"title":"get_characters_character_id_bookmarks_coordinates"}},"title":"get_characters_character_id_bookmarks_200_ok","description":"200 ok object"},"title":"get_characters_character_id_bookmarks_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-bookmarks.read_character_bookmarks.v1"]}],"operationId":"get_characters_character_id_bookmarks","x-cached-seconds":3600,"x-alternate-versions":["dev","v2"]}},"/v2/characters/{character_id}/bookmarks/folders/":{"get":{"description":"A list of your character's personal bookmark folders\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"List bookmark folders","tags":["Bookmarks"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of bookmark folders","examples":{"application/json":[{"folder_id":5,"name":"Icecream"}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["folder_id","name"],"properties":{"folder_id":{"type":"integer","format":"int32","title":"get_characters_character_id_bookmarks_folders_folder_id","description":"folder_id integer"},"name":{"type":"string","title":"get_characters_character_id_bookmarks_folders_name","description":"name string"}},"title":"get_characters_character_id_bookmarks_folders_200_ok","description":"200 ok object"},"title":"get_characters_character_id_bookmarks_folders_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-bookmarks.read_character_bookmarks.v1"]}],"operationId":"get_characters_character_id_bookmarks_folders","x-cached-seconds":3600,"x-alternate-versions":["dev","v2"]}},"/v1/corporations/{corporation_id}/bookmarks/":{"get":{"description":"A list of your corporation's bookmarks\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"List corporation bookmarks","tags":["Bookmarks"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of corporation owned bookmarks","examples":{"application/json":[{"bookmark_id":4,"location_id":30003430,"item":{"type_id":29633,"item_id":50006722},"creator_id":2112625428,"folder_id":5,"label":"Stargate","notes":"This is a stargate","created":"2016-08-09T11:57:47Z"},{"bookmark_id":5,"location_id":30003430,"coordinates":{"x":-2958928814000,"y":-338367275823,"z":2114538075090},"creator_id":2112625428,"folder_id":5,"label":"Random location","notes":"This is a random location in space","created":"2016-08-09T11:57:47Z"}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["bookmark_id","creator_id","created","label","notes","location_id"],"properties":{"bookmark_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_bookmarks_bookmark_id","description":"bookmark_id integer"},"creator_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_bookmarks_creator_id","description":"creator_id integer"},"folder_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_bookmarks_folder_id","description":"folder_id integer"},"created":{"type":"string","format":"date-time","title":"get_corporations_corporation_id_bookmarks_created","description":"created string"},"label":{"type":"string","title":"get_corporations_corporation_id_bookmarks_label","description":"label string"},"notes":{"type":"string","title":"get_corporations_corporation_id_bookmarks_notes","description":"notes string"},"location_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_bookmarks_location_id","description":"location_id integer"},"item":{"type":"object","description":"Optional object that is returned if a bookmark was made on a particular item.","required":["item_id","type_id"],"properties":{"item_id":{"type":"integer","format":"int64","title":"get_corporations_corporation_id_bookmarks_item_id","description":"item_id integer"},"type_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_bookmarks_type_id","description":"type_id integer"}},"title":"get_corporations_corporation_id_bookmarks_item"},"coordinates":{"type":"object","description":"Optional object that is returned if a bookmark was made on a planet or a random location in space.","required":["x","y","z"],"properties":{"x":{"type":"number","format":"double","title":"get_corporations_corporation_id_bookmarks_x","description":"x number"},"y":{"type":"number","format":"double","title":"get_corporations_corporation_id_bookmarks_y","description":"y number"},"z":{"type":"number","format":"double","title":"get_corporations_corporation_id_bookmarks_z","description":"z number"}},"title":"get_corporations_corporation_id_bookmarks_coordinates"}},"title":"get_corporations_corporation_id_bookmarks_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_bookmarks_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-bookmarks.read_corporation_bookmarks.v1"]}],"operationId":"get_corporations_corporation_id_bookmarks","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/bookmarks/folders/":{"get":{"description":"A list of your corporation's bookmark folders\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"List corporation bookmark folders","tags":["Bookmarks"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of corporation owned bookmark folders","examples":{"application/json":[{"folder_id":5,"name":"Important Locations"}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["folder_id","name"],"properties":{"folder_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_bookmarks_folders_folder_id","description":"folder_id integer"},"name":{"type":"string","title":"get_corporations_corporation_id_bookmarks_folders_name","description":"name string"},"creator_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_bookmarks_folders_creator_id","description":"creator_id integer"}},"title":"get_corporations_corporation_id_bookmarks_folders_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_bookmarks_folders_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-bookmarks.read_corporation_bookmarks.v1"]}],"operationId":"get_corporations_corporation_id_bookmarks_folders","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/calendar/":{"get":{"description":"Get 50 event summaries from the calendar. If no from_event ID is given, the resource will return the next 50 chronological event summaries from now. If a from_event ID is specified, it will return the next 50 chronological event summaries from after that event.\n\n---\n\nThis route is cached for up to 5 seconds","summary":"List calendar event summaries","tags":["Calendar"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"name":"from_event","in":"query","description":"The event ID to retrieve events from","required":false,"type":"integer","format":"int32"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A collection of event summaries","examples":{"application/json":[{"event_id":1386435,"event_date":"2016-06-26T20:00:00Z","title":"o7 The EVE Online Show","importance":0,"event_response":"accepted"}]},"schema":{"type":"array","description":"Up to 50 events from now or the event you requested","maxItems":50,"items":{"description":"event","type":"object","properties":{"event_id":{"type":"integer","format":"int32","title":"get_characters_character_id_calendar_event_id","description":"event_id integer"},"event_date":{"type":"string","format":"date-time","title":"get_characters_character_id_calendar_event_date","description":"event_date string"},"title":{"type":"string","title":"get_characters_character_id_calendar_title","description":"title string"},"importance":{"type":"integer","format":"int32","title":"get_characters_character_id_calendar_importance","description":"importance integer"},"event_response":{"type":"string","enum":["declined","not_responded","accepted","tentative"],"title":"get_characters_character_id_calendar_event_response","description":"event_response string"}},"title":"get_characters_character_id_calendar_200_ok"},"title":"get_characters_character_id_calendar_ok"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-calendar.read_calendar_events.v1"]}],"operationId":"get_characters_character_id_calendar","x-cached-seconds":5,"x-alternate-versions":["dev","legacy","v1"]}},"/v3/characters/{character_id}/calendar/{event_id}/":{"get":{"description":"Get all the information for a specific event\n\n---\n\nThis route is cached for up to 5 seconds","summary":"Get an event","tags":["Calendar"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"name":"event_id","in":"path","description":"The id of the event requested","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Full details of a specific event","examples":{"application/json":{"event_id":1386435,"owner_id":1,"owner_name":"EVE System","date":"2016-06-26T21:00:00Z","title":"o7 The EVE Online Show","duration":60,"importance":1,"response":"Undecided","text":"o7: The EVE Online Show features latest developer news, fast paced action, community overviews and a lot more with CCP Guard and CCP Mimic. Join the thrilling o7 live broadcast at 20:00 EVE time (=UTC) on EVE TV. Don't miss it!","owner_type":"eve_server"}},"schema":{"type":"object","description":"Full details of a specific event","required":["event_id","owner_id","owner_name","date","title","duration","importance","response","text","owner_type"],"properties":{"event_id":{"type":"integer","format":"int32","title":"get_characters_character_id_calendar_event_id_event_id","description":"event_id integer"},"owner_id":{"type":"integer","format":"int32","title":"get_characters_character_id_calendar_event_id_owner_id","description":"owner_id integer"},"owner_name":{"type":"string","title":"get_characters_character_id_calendar_event_id_owner_name","description":"owner_name string"},"date":{"type":"string","format":"date-time","title":"get_characters_character_id_calendar_event_id_date","description":"date string"},"title":{"type":"string","title":"get_characters_character_id_calendar_event_id_title","description":"title string"},"duration":{"type":"integer","format":"int32","description":"Length in minutes","title":"get_characters_character_id_calendar_event_id_duration"},"importance":{"type":"integer","format":"int32","title":"get_characters_character_id_calendar_event_id_importance","description":"importance integer"},"response":{"type":"string","title":"get_characters_character_id_calendar_event_id_response","description":"response string"},"text":{"type":"string","title":"get_characters_character_id_calendar_event_id_text","description":"text string"},"owner_type":{"type":"string","enum":["eve_server","corporation","faction","character","alliance"],"title":"get_characters_character_id_calendar_event_id_owner_type","description":"owner_type string"}},"title":"get_characters_character_id_calendar_event_id_ok"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-calendar.read_calendar_events.v1"]}],"operationId":"get_characters_character_id_calendar_event_id","x-cached-seconds":5,"x-alternate-versions":["dev","v3"]},"put":{"description":"Set your response status to an event\n\n---\n","summary":"Respond to an event","tags":["Calendar"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"name":"event_id","in":"path","description":"The ID of the event requested","required":true,"type":"integer","format":"int32"},{"name":"response","in":"body","description":"The response value to set, overriding current value.","required":true,"schema":{"type":"object","required":["response"],"properties":{"response":{"type":"string","enum":["accepted","declined","tentative"],"title":"put_characters_character_id_calendar_event_id_response","description":"response string"}},"title":"put_characters_character_id_calendar_event_id_response","description":"response object"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Event updated"},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-calendar.respond_calendar_events.v1"]}],"operationId":"put_characters_character_id_calendar_event_id","x-alternate-versions":["dev","v3"]}},"/v1/characters/{character_id}/calendar/{event_id}/attendees/":{"get":{"description":"Get all invited attendees for a given event\n\n---\n\nThis route is cached for up to 600 seconds","summary":"Get attendees","tags":["Calendar"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"name":"event_id","in":"path","description":"The id of the event requested","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of attendees","examples":{"application/json":[{"character_id":2112625428,"event_response":"accepted"},{"character_id":95465499,"event_response":"tentative"}]},"schema":{"type":"array","description":"List of attendees for a given event","maxItems":100,"items":{"type":"object","description":"character_id and response of an attendee","properties":{"character_id":{"type":"integer","format":"int32","title":"get_characters_character_id_calendar_event_id_attendees_character_id","description":"character_id integer"},"event_response":{"type":"string","enum":["declined","not_responded","accepted","tentative"],"title":"get_characters_character_id_calendar_event_id_attendees_event_response","description":"event_response string"}},"title":"get_characters_character_id_calendar_event_id_attendees_200_ok"},"title":"get_characters_character_id_calendar_event_id_attendees_ok"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-calendar.read_calendar_events.v1"]}],"operationId":"get_characters_character_id_calendar_event_id_attendees","x-cached-seconds":600,"x-alternate-versions":["dev","legacy","v1"]}},"/v4/characters/{character_id}/":{"get":{"description":"Public information about a character\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get character's public information","tags":["Character"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Public data for the given character","examples":{"application/json":{"corporation_id":109299958,"birthday":"2015-03-24T11:37:00Z","name":"CCP Bartender","gender":"male","race_id":2,"description":"","bloodline_id":3,"ancestry_id":19}},"schema":{"type":"object","required":["corporation_id","birthday","name","gender","race_id","bloodline_id"],"properties":{"name":{"type":"string","title":"get_characters_character_id_name","description":"name string"},"description":{"type":"string","title":"get_characters_character_id_description","description":"description string"},"corporation_id":{"type":"integer","format":"int32","description":"The character's corporation ID","title":"get_characters_character_id_corporation_id"},"alliance_id":{"type":"integer","format":"int32","description":"The character's alliance ID","title":"get_characters_character_id_alliance_id"},"birthday":{"type":"string","format":"date-time","description":"Creation date of the character","title":"get_characters_character_id_birthday"},"gender":{"type":"string","enum":["female","male"],"title":"get_characters_character_id_gender","description":"gender string"},"race_id":{"type":"integer","format":"int32","title":"get_characters_character_id_race_id","description":"race_id integer"},"bloodline_id":{"type":"integer","format":"int32","title":"get_characters_character_id_bloodline_id","description":"bloodline_id integer"},"ancestry_id":{"type":"integer","format":"int32","title":"get_characters_character_id_ancestry_id","description":"ancestry_id integer"},"security_status":{"type":"number","format":"float","minimum":-10,"maximum":10,"title":"get_characters_character_id_security_status","description":"security_status number"},"faction_id":{"type":"integer","format":"int32","description":"ID of the faction the character is fighting for, if the character is enlisted in Factional Warfare","title":"get_characters_character_id_faction_id"}},"title":"get_characters_character_id_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"Character not found","schema":{"type":"object","title":"get_characters_character_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_characters_character_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_characters_character_id","x-cached-seconds":3600,"x-alternate-versions":["dev","v4"]}},"/v1/characters/affiliation/":{"post":{"description":"Bulk lookup of character IDs to corporation, alliance and faction\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Character affiliation","tags":["Character"],"parameters":[{"name":"characters","in":"body","description":"The character IDs to fetch affiliations for. All characters must exist, or none will be returned.","required":true,"schema":{"type":"array","minItems":1,"maxItems":1000,"uniqueItems":true,"items":{"type":"integer","format":"int32","title":"post_characters_affiliation_character","description":"character integer"},"title":"post_characters_affiliation_characters","description":"characters array"}},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Character corporation, alliance and faction IDs","examples":{"application/json":[{"character_id":95538921,"corporation_id":109299958,"alliance_id":434243723}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["character_id","corporation_id"],"properties":{"character_id":{"type":"integer","format":"int32","description":"The character's ID","title":"post_characters_affiliation_character_id"},"corporation_id":{"type":"integer","format":"int32","description":"The character's corporation ID","title":"post_characters_affiliation_corporation_id"},"alliance_id":{"type":"integer","format":"int32","description":"The character's alliance ID, if their corporation is in an alliance","title":"post_characters_affiliation_alliance_id"},"faction_id":{"type":"integer","format":"int32","description":"The character's faction ID, if their corporation is in a faction","title":"post_characters_affiliation_faction_id"}},"title":"post_characters_affiliation_200_ok","description":"200 ok object"},"title":"post_characters_affiliation_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"No characters found!","schema":{"type":"object","title":"post_characters_affiliation_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"post_characters_affiliation_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"post_characters_affiliation","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v4/characters/{character_id}/cspa/":{"post":{"description":"Takes a source character ID in the url and a set of target character ID's in the body, returns a CSPA charge cost\n\n---\n","summary":"Calculate a CSPA charge cost","tags":["Character"],"parameters":[{"$ref":"#/parameters/character_id"},{"name":"characters","in":"body","description":"The target characters to calculate the charge for","required":true,"schema":{"type":"array","minItems":1,"uniqueItems":true,"maxItems":100,"items":{"type":"integer","format":"int32","title":"post_characters_character_id_cspa_character","description":"character integer"},"title":"post_characters_character_id_cspa_characters","description":"characters array"}},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"201":{"description":"Aggregate cost of sending a mail from the source character to the target characters, in ISK","examples":{"application/json":2950.0},"schema":{"type":"number","format":"float","title":"post_characters_character_id_cspa_created","description":"201 created number"}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-characters.read_contacts.v1"]}],"operationId":"post_characters_character_id_cspa","x-alternate-versions":["dev","v4"]}},"/v1/characters/names/":{"get":{"description":"Resolve a set of character IDs to character names\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get character names","tags":["Character"],"parameters":[{"name":"character_ids","in":"query","description":"A comma separated list of character IDs","required":true,"type":"array","maxItems":1000,"minItems":1,"items":{"type":"integer","format":"int64"}},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of id/name associations","examples":{"application/json":[{"character_id":95465499,"character_name":"CCP Bartender"}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["character_id","character_name"],"properties":{"character_id":{"type":"integer","format":"int64","title":"get_characters_names_character_id","description":"character_id integer"},"character_name":{"type":"string","title":"get_characters_names_character_name","description":"character_name string"}},"title":"get_characters_names_200_ok","description":"200 ok object"},"title":"get_characters_names_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_characters_names","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v2/characters/{character_id}/portrait/":{"get":{"description":"Get portrait urls for a character\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get character portraits","tags":["Character"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Public data for the given character","examples":{"application/json":{"px64x64":"https://imageserver.eveonline.com/Character/95465499_64.jpg","px128x128":"https://imageserver.eveonline.com/Character/95465499_128.jpg","px256x256":"https://imageserver.eveonline.com/Character/95465499_256.jpg","px512x512":"https://imageserver.eveonline.com/Character/95465499_512.jpg"}},"schema":{"type":"object","properties":{"px64x64":{"type":"string","title":"get_characters_character_id_portrait_px64x64","description":"px64x64 string"},"px128x128":{"type":"string","title":"get_characters_character_id_portrait_px128x128","description":"px128x128 string"},"px256x256":{"type":"string","title":"get_characters_character_id_portrait_px256x256","description":"px256x256 string"},"px512x512":{"type":"string","title":"get_characters_character_id_portrait_px512x512","description":"px512x512 string"}},"title":"get_characters_character_id_portrait_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"No image server for this datasource","examples":{"application/json":{"error":"No image server for this datasource"}},"schema":{"type":"object","description":"No image server for this datasource","properties":{"error":{"type":"string","description":"error message","title":"get_characters_character_id_portrait_error"}},"title":"get_characters_character_id_portrait_not_found"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_characters_character_id_portrait","x-cached-seconds":3600,"x-alternate-versions":["dev","v2"]}},"/v1/characters/{character_id}/corporationhistory/":{"get":{"description":"Get a list of all the corporations a character has been a member of\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get corporation history","tags":["Character"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Corporation history for the given character","examples":{"application/json":[{"start_date":"2016-06-26T20:00:00Z","corporation_id":90000001,"is_deleted":true,"record_id":500},{"start_date":"2016-07-26T20:00:00Z","corporation_id":90000002,"record_id":501}]},"schema":{"type":"array","maxItems":10000,"items":{"type":"object","required":["start_date","corporation_id","record_id"],"properties":{"start_date":{"type":"string","format":"date-time","title":"get_characters_character_id_corporationhistory_start_date","description":"start_date string"},"corporation_id":{"type":"integer","format":"int32","title":"get_characters_character_id_corporationhistory_corporation_id","description":"corporation_id integer"},"is_deleted":{"type":"boolean","description":"True if the corporation has been deleted","title":"get_characters_character_id_corporationhistory_is_deleted"},"record_id":{"type":"integer","format":"int32","description":"An incrementing ID that can be used to canonically establish order of records in cases where dates may be ambiguous","title":"get_characters_character_id_corporationhistory_record_id"}},"title":"get_characters_character_id_corporationhistory_200_ok","description":"200 ok object"},"title":"get_characters_character_id_corporationhistory_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_characters_character_id_corporationhistory","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/chat_channels/":{"get":{"description":"Return chat channels that a character is the owner or operator of\n\n---\n\nThis route is cached for up to 300 seconds","summary":"Get chat channels","tags":["Character"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of chat channels","examples":{"application/json":[{"channel_id":-69329950,"name":"Players' Haven","owner_id":95578451,"comparison_key":"players'haven","has_password":false,"motd":"Feed pineapples to the cats!","allowed":[],"operators":[],"blocked":[],"muted":[]}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["channel_id","name","owner_id","comparison_key","has_password","motd","allowed","operators","blocked","muted"],"properties":{"channel_id":{"type":"integer","format":"int32","description":"Unique channel ID. Always negative for player-created channels. Permanent (CCP created) channels have a positive ID, but don't appear in the API","title":"get_characters_character_id_chat_channels_channel_id"},"name":{"type":"string","description":"Displayed name of channel","title":"get_characters_character_id_chat_channels_name"},"owner_id":{"type":"integer","format":"int32","title":"get_characters_character_id_chat_channels_owner_id","description":"owner_id integer"},"comparison_key":{"type":"string","description":"Normalized, unique string used to compare channel names","title":"get_characters_character_id_chat_channels_comparison_key"},"has_password":{"type":"boolean","description":"If this is a password protected channel","title":"get_characters_character_id_chat_channels_has_password"},"motd":{"type":"string","description":"Message of the day for this channel","title":"get_characters_character_id_chat_channels_motd"},"allowed":{"type":"array","maxItems":1000,"items":{"type":"object","required":["accessor_id","accessor_type"],"properties":{"accessor_id":{"type":"integer","format":"int32","description":"ID of an allowed channel member","title":"get_characters_character_id_chat_channels_accessor_id"},"accessor_type":{"type":"string","enum":["character","corporation","alliance"],"title":"get_characters_character_id_chat_channels_accessor_type","description":"accessor_type string"}},"title":"get_characters_character_id_chat_channels_allowed","description":"allowed object"},"title":"get_characters_character_id_chat_channels_allowed","description":"allowed array"},"operators":{"type":"array","maxItems":1000,"items":{"type":"object","required":["accessor_id","accessor_type"],"properties":{"accessor_id":{"type":"integer","format":"int32","description":"ID of a channel operator","title":"get_characters_character_id_chat_channels_accessor_id"},"accessor_type":{"type":"string","enum":["character","corporation","alliance"],"title":"get_characters_character_id_chat_channels_accessor_type","description":"accessor_type string"}},"title":"get_characters_character_id_chat_channels_operator","description":"operator object"},"title":"get_characters_character_id_chat_channels_operators","description":"operators array"},"blocked":{"type":"array","maxItems":1000,"items":{"type":"object","required":["accessor_id","accessor_type"],"properties":{"accessor_id":{"type":"integer","format":"int32","description":"ID of a blocked channel member","title":"get_characters_character_id_chat_channels_accessor_id"},"accessor_type":{"type":"string","enum":["character","corporation","alliance"],"title":"get_characters_character_id_chat_channels_accessor_type","description":"accessor_type string"},"reason":{"type":"string","description":"Reason this accessor is blocked","title":"get_characters_character_id_chat_channels_reason"},"end_at":{"type":"string","format":"date-time","description":"Time at which this accessor will no longer be blocked","title":"get_characters_character_id_chat_channels_end_at"}},"title":"get_characters_character_id_chat_channels_blocked","description":"blocked object"},"title":"get_characters_character_id_chat_channels_blocked","description":"blocked array"},"muted":{"type":"array","maxItems":1000,"items":{"type":"object","required":["accessor_id","accessor_type"],"properties":{"accessor_id":{"type":"integer","format":"int32","description":"ID of a muted channel member","title":"get_characters_character_id_chat_channels_accessor_id"},"accessor_type":{"type":"string","enum":["character","corporation","alliance"],"title":"get_characters_character_id_chat_channels_accessor_type","description":"accessor_type string"},"reason":{"type":"string","description":"Reason this accessor is muted","title":"get_characters_character_id_chat_channels_reason"},"end_at":{"type":"string","format":"date-time","description":"Time at which this accessor will no longer be muted","title":"get_characters_character_id_chat_channels_end_at"}},"title":"get_characters_character_id_chat_channels_muted","description":"muted object"},"title":"get_characters_character_id_chat_channels_muted","description":"muted array"}},"title":"get_characters_character_id_chat_channels_200_ok","description":"200 ok object"},"title":"get_characters_character_id_chat_channels_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-characters.read_chat_channels.v1"]}],"operationId":"get_characters_character_id_chat_channels","x-cached-seconds":300,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/medals/":{"get":{"description":"Return a list of medals the character has\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get medals","tags":["Character"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of medals","examples":{"application/json":[{"medal_id":3,"title":"33 tester medal","description":"For 33 corp!","corporation_id":98000001,"issuer_id":2112000002,"date":"2017-03-16T15:01:45Z","reason":"Thanks!","status":"private","graphics":[{"part":1,"layer":0,"graphic":"caldari.1_1","color":-1},{"part":1,"layer":1,"graphic":"caldari.1_2","color":-330271},{"part":2,"layer":0,"graphic":"compass.1_2","color":-1}]}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["medal_id","title","description","corporation_id","issuer_id","date","reason","status","graphics"],"properties":{"medal_id":{"type":"integer","format":"int32","title":"get_characters_character_id_medals_medal_id","description":"medal_id integer"},"title":{"type":"string","title":"get_characters_character_id_medals_title","description":"title string"},"description":{"type":"string","title":"get_characters_character_id_medals_description","description":"description string"},"corporation_id":{"type":"integer","format":"int32","title":"get_characters_character_id_medals_corporation_id","description":"corporation_id integer"},"issuer_id":{"type":"integer","format":"int32","title":"get_characters_character_id_medals_issuer_id","description":"issuer_id integer"},"date":{"type":"string","format":"date-time","title":"get_characters_character_id_medals_date","description":"date string"},"reason":{"type":"string","title":"get_characters_character_id_medals_reason","description":"reason string"},"status":{"type":"string","enum":["public","private"],"title":"get_characters_character_id_medals_status","description":"status string"},"graphics":{"type":"array","minItems":3,"maxItems":9,"items":{"type":"object","required":["part","layer","graphic"],"properties":{"part":{"type":"integer","format":"int32","title":"get_characters_character_id_medals_part","description":"part integer"},"layer":{"type":"integer","format":"int32","title":"get_characters_character_id_medals_layer","description":"layer integer"},"graphic":{"type":"string","title":"get_characters_character_id_medals_graphic","description":"graphic string"},"color":{"type":"integer","format":"int32","title":"get_characters_character_id_medals_color","description":"color integer"}},"title":"get_characters_character_id_medals_graphic","description":"graphic object"},"title":"get_characters_character_id_medals_graphics","description":"graphics array"}},"title":"get_characters_character_id_medals_200_ok","description":"200 ok object"},"title":"get_characters_character_id_medals_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-characters.read_medals.v1"]}],"operationId":"get_characters_character_id_medals","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/standings/":{"get":{"description":"Return character standings from agents, NPC corporations, and factions\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get standings","tags":["Character"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of standings","examples":{"application/json":[{"from_id":3009841,"from_type":"agent","standing":0.1},{"from_id":1000061,"from_type":"npc_corp","standing":0},{"from_id":500003,"from_type":"faction","standing":-1}]},"schema":{"type":"array","maxItems":10000,"items":{"type":"object","required":["from_id","from_type","standing"],"properties":{"from_id":{"type":"integer","format":"int32","title":"get_characters_character_id_standings_from_id","description":"from_id integer"},"from_type":{"type":"string","enum":["agent","npc_corp","faction"],"title":"get_characters_character_id_standings_from_type","description":"from_type string"},"standing":{"type":"number","format":"float","minimum":-10,"maximum":10,"title":"get_characters_character_id_standings_standing","description":"standing number"}},"title":"get_characters_character_id_standings_200_ok","description":"200 ok object"},"title":"get_characters_character_id_standings_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-characters.read_standings.v1"]}],"operationId":"get_characters_character_id_standings","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/agents_research/":{"get":{"description":"Return a list of agents research information for a character. The formula for finding the current research points with an agent is: currentPoints = remainderPoints + pointsPerDay * days(currentTime - researchStartDate)\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get agents research","tags":["Character"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of agents research information","examples":{"application/json":[{"agent_id":3009358,"skill_type_id":11450,"started_at":"2017-03-23T14:47:00Z","points_per_day":53.5346162146776,"remainder_points":53604.0634303189}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["agent_id","skill_type_id","started_at","points_per_day","remainder_points"],"properties":{"agent_id":{"type":"integer","format":"int32","title":"get_characters_character_id_agents_research_agent_id","description":"agent_id integer"},"skill_type_id":{"type":"integer","format":"int32","title":"get_characters_character_id_agents_research_skill_type_id","description":"skill_type_id integer"},"started_at":{"type":"string","format":"date-time","title":"get_characters_character_id_agents_research_started_at","description":"started_at string"},"points_per_day":{"type":"number","format":"float","title":"get_characters_character_id_agents_research_points_per_day","description":"points_per_day number"},"remainder_points":{"type":"number","format":"float","title":"get_characters_character_id_agents_research_remainder_points","description":"remainder_points number"}},"title":"get_characters_character_id_agents_research_200_ok","description":"200 ok object"},"title":"get_characters_character_id_agents_research_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-characters.read_agents_research.v1"]}],"operationId":"get_characters_character_id_agents_research","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v2/characters/{character_id}/blueprints/":{"get":{"description":"Return a list of blueprints the character owns\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get blueprints","tags":["Character"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of blueprints","examples":{"application/json":[{"item_id":1000000010495,"type_id":691,"location_id":60014719,"location_flag":"Hangar","quantity":1,"time_efficiency":0,"material_efficiency":0,"runs":-1}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["item_id","type_id","location_id","location_flag","quantity","time_efficiency","material_efficiency","runs"],"properties":{"item_id":{"type":"integer","format":"int64","description":"Unique ID for this item.","title":"get_characters_character_id_blueprints_item_id"},"type_id":{"type":"integer","format":"int32","title":"get_characters_character_id_blueprints_type_id","description":"type_id integer"},"location_id":{"type":"integer","format":"int64","description":"References a solar system, station or item_id if this blueprint is located within a container. If the return value is an item_id, then the Character AssetList API must be queried to find the container using the given item_id to determine the correct location of the Blueprint.","title":"get_characters_character_id_blueprints_location_id"},"location_flag":{"type":"string","description":"Type of the location_id","enum":["AutoFit","Cargo","CorpseBay","DroneBay","FleetHangar","Deliveries","HiddenModifiers","Hangar","HangarAll","LoSlot0","LoSlot1","LoSlot2","LoSlot3","LoSlot4","LoSlot5","LoSlot6","LoSlot7","MedSlot0","MedSlot1","MedSlot2","MedSlot3","MedSlot4","MedSlot5","MedSlot6","MedSlot7","HiSlot0","HiSlot1","HiSlot2","HiSlot3","HiSlot4","HiSlot5","HiSlot6","HiSlot7","AssetSafety","Locked","Unlocked","Implant","QuafeBay","RigSlot0","RigSlot1","RigSlot2","RigSlot3","RigSlot4","RigSlot5","RigSlot6","RigSlot7","ShipHangar","SpecializedFuelBay","SpecializedOreHold","SpecializedGasHold","SpecializedMineralHold","SpecializedSalvageHold","SpecializedShipHold","SpecializedSmallShipHold","SpecializedMediumShipHold","SpecializedLargeShipHold","SpecializedIndustrialShipHold","SpecializedAmmoHold","SpecializedCommandCenterHold","SpecializedPlanetaryCommoditiesHold","SpecializedMaterialBay","SubSystemSlot0","SubSystemSlot1","SubSystemSlot2","SubSystemSlot3","SubSystemSlot4","SubSystemSlot5","SubSystemSlot6","SubSystemSlot7","FighterBay","FighterTube0","FighterTube1","FighterTube2","FighterTube3","FighterTube4","Module"],"title":"get_characters_character_id_blueprints_location_flag"},"quantity":{"type":"integer","format":"int32","description":"A range of numbers with a minimum of -2 and no maximum value where -1 is an original and -2 is a copy. It can be a positive integer if it is a stack of blueprint originals fresh from the market (e.g. no activities performed on them yet).","minimum":-2,"title":"get_characters_character_id_blueprints_quantity"},"time_efficiency":{"type":"integer","format":"int32","description":"Time Efficiency Level of the blueprint.","minimum":0,"maximum":20,"title":"get_characters_character_id_blueprints_time_efficiency"},"material_efficiency":{"type":"integer","format":"int32","description":"Material Efficiency Level of the blueprint.","minimum":0,"maximum":25,"title":"get_characters_character_id_blueprints_material_efficiency"},"runs":{"type":"integer","format":"int32","description":"Number of runs remaining if the blueprint is a copy, -1 if it is an original.","minimum":-1,"title":"get_characters_character_id_blueprints_runs"}},"title":"get_characters_character_id_blueprints_200_ok","description":"200 ok object"},"title":"get_characters_character_id_blueprints_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-characters.read_blueprints.v1"]}],"operationId":"get_characters_character_id_blueprints","x-cached-seconds":3600,"x-alternate-versions":["dev","v2"]}},"/v1/characters/{character_id}/fatigue/":{"get":{"description":"Return a character's jump activation and fatigue information\n\n---\n\nThis route is cached for up to 300 seconds","summary":"Get jump fatigue","tags":["Character"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Jump activation and fatigue information","examples":{"application/json":{"last_jump_date":"2017-07-05T15:47:00Z","jump_fatigue_expire_date":"2017-07-06T15:47:00Z","last_update_date":"2017-07-05T15:42:00Z"}},"schema":{"type":"object","properties":{"last_jump_date":{"type":"string","format":"date-time","description":"Character's last jump activation","title":"get_characters_character_id_fatigue_last_jump_date"},"jump_fatigue_expire_date":{"type":"string","format":"date-time","description":"Character's jump fatigue expiry","title":"get_characters_character_id_fatigue_jump_fatigue_expire_date"},"last_update_date":{"type":"string","format":"date-time","description":"Character's last jump update","title":"get_characters_character_id_fatigue_last_update_date"}},"title":"get_characters_character_id_fatigue_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-characters.read_fatigue.v1"]}],"operationId":"get_characters_character_id_fatigue","x-cached-seconds":300,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/notifications/contacts/":{"get":{"description":"Return notifications about having been added to someone's contact list\n\n---\n\nThis route is cached for up to 600 seconds","summary":"Get new contact notifications","tags":["Character"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of contact notifications","examples":{"application/json":[{"notification_id":1,"sender_character_id":95465499,"send_date":"2017-08-16T10:08:00Z","standing_level":1.5,"message":"hello friend :3"}]},"schema":{"type":"array","maxItems":50,"items":{"type":"object","required":["notification_id","send_date","standing_level","message","sender_character_id"],"properties":{"notification_id":{"type":"integer","format":"int32","title":"get_characters_character_id_notifications_contacts_notification_id","description":"notification_id integer"},"send_date":{"type":"string","format":"date-time","title":"get_characters_character_id_notifications_contacts_send_date","description":"send_date string"},"standing_level":{"description":"A number representing the standing level the receiver has been added at by the sender. The standing levels are as follows: -10 -> Terrible | -5 -> Bad | 0 -> Neutral | 5 -> Good | 10 -> Excellent","type":"number","format":"float","title":"get_characters_character_id_notifications_contacts_standing_level"},"message":{"type":"string","title":"get_characters_character_id_notifications_contacts_message","description":"message string"},"sender_character_id":{"type":"integer","format":"int32","title":"get_characters_character_id_notifications_contacts_sender_character_id","description":"sender_character_id integer"}},"title":"get_characters_character_id_notifications_contacts_200_ok","description":"200 ok object"},"title":"get_characters_character_id_notifications_contacts_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-characters.read_notifications.v1"]}],"operationId":"get_characters_character_id_notifications_contacts","x-cached-seconds":600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/notifications/":{"get":{"description":"Return character notifications\n\n---\n\nThis route is cached for up to 600 seconds\n\n---\n[This route has an available update](https://esi.tech.ccp.is/diff/latest/dev/#GET-/characters/{character_id}/notifications/)","summary":"Get character notifications","tags":["Character"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Returns your recent notifications","examples":{"application/json":[{"notification_id":1,"type":"InsurancePayoutMsg","sender_id":1000132,"sender_type":"corporation","timestamp":"2017-08-16T10:08:00Z","is_read":true,"text":"amount: 3731016.4000000004\\nitemID: 1024881021663\\npayout: 1\\n"}]},"schema":{"type":"array","maxItems":500,"items":{"type":"object","required":["notification_id","type","sender_id","sender_type","timestamp"],"properties":{"notification_id":{"type":"integer","format":"int64","title":"get_characters_character_id_notifications_notification_id","description":"notification_id integer"},"sender_id":{"type":"integer","format":"int32","title":"get_characters_character_id_notifications_sender_id","description":"sender_id integer"},"sender_type":{"type":"string","enum":["character","corporation","alliance","faction","other"],"title":"get_characters_character_id_notifications_sender_type","description":"sender_type string"},"timestamp":{"type":"string","format":"date-time","title":"get_characters_character_id_notifications_timestamp","description":"timestamp string"},"is_read":{"type":"boolean","title":"get_characters_character_id_notifications_is_read","description":"is_read boolean"},"text":{"type":"string","title":"get_characters_character_id_notifications_text","description":"text string"},"type":{"type":"string","enum":["AcceptedAlly","AcceptedSurrender","AllAnchoringMsg","AllMaintenanceBillMsg","AllStrucInvulnerableMsg","AllStructVulnerableMsg","AllWarCorpJoinedAllianceMsg","AllWarDeclaredMsg","AllWarInvalidatedMsg","AllWarRetractedMsg","AllWarSurrenderMsg","AllianceCapitalChanged","AllyContractCancelled","AllyJoinedWarAggressorMsg","AllyJoinedWarAllyMsg","AllyJoinedWarDefenderMsg","BattlePunishFriendlyFire","BillOutOfMoneyMsg","BillPaidCorpAllMsg","BountyClaimMsg","BountyESSShared","BountyESSTaken","BountyPlacedAlliance","BountyPlacedChar","BountyPlacedCorp","BountyYourBountyClaimed","BuddyConnectContactAdd","CharAppAcceptMsg","CharAppRejectMsg","CharAppWithdrawMsg","CharLeftCorpMsg","CharMedalMsg","CharTerminationMsg","CloneActivationMsg","CloneActivationMsg2","CloneMovedMsg","CloneRevokedMsg1","CloneRevokedMsg2","ContactAdd","ContactEdit","ContainerPasswordMsg","CorpAllBillMsg","CorpAppAcceptMsg","CorpAppInvitedMsg","CorpAppNewMsg","CorpAppRejectCustomMsg","CorpAppRejectMsg","CorpDividendMsg","CorpFriendlyFireDisableTimerCompleted","CorpFriendlyFireDisableTimerStarted","CorpFriendlyFireEnableTimerCompleted","CorpFriendlyFireEnableTimerStarted","CorpKicked","CorpLiquidationMsg","CorpNewCEOMsg","CorpNewsMsg","CorpOfficeExpirationMsg","CorpStructLostMsg","CorpTaxChangeMsg","CorpVoteCEORevokedMsg","CorpVoteMsg","CorpWarDeclaredMsg","CorpWarFightingLegalMsg","CorpWarInvalidatedMsg","CorpWarRetractedMsg","CorpWarSurrenderMsg","CustomsMsg","DeclareWar","DistrictAttacked","DustAppAcceptedMsg","EntosisCaptureStarted","FWAllianceKickMsg","FWAllianceWarningMsg","FWCharKickMsg","FWCharRankGainMsg","FWCharRankLossMsg","FWCharWarningMsg","FWCorpJoinMsg","FWCorpKickMsg","FWCorpLeaveMsg","FWCorpWarningMsg","FacWarCorpJoinRequestMsg","FacWarCorpJoinWithdrawMsg","FacWarCorpLeaveRequestMsg","FacWarCorpLeaveWithdrawMsg","FacWarLPDisqualifiedEvent","FacWarLPDisqualifiedKill","FacWarLPPayoutEvent","FacWarLPPayoutKill","GameTimeAdded","GameTimeReceived","GameTimeSent","GiftReceived","IHubDestroyedByBillFailure","IncursionCompletedMsg","IndustryTeamAuctionLost","IndustryTeamAuctionWon","InfrastructureHubBillAboutToExpire","InsuranceExpirationMsg","InsuranceFirstShipMsg","InsuranceInvalidatedMsg","InsuranceIssuedMsg","InsurancePayoutMsg","JumpCloneDeletedMsg1","JumpCloneDeletedMsg2","KillReportFinalBlow","KillReportVictim","KillRightAvailable","KillRightAvailableOpen","KillRightEarned","KillRightUnavailable","KillRightUnavailableOpen","KillRightUsed","LocateCharMsg","MadeWarMutual","MercOfferedNegotiationMsg","MissionOfferExpirationMsg","MissionTimeoutMsg","MoonminingAutomaticFracture","MoonminingExtractionCancelled","MoonminingExtractionFinished","MoonminingLaserFired","NPCStandingsGained","NPCStandingsLost","OfferedSurrender","OfferedToAlly","OldLscMessages","OperationFinished","OrbitalAttacked","OrbitalReinforced","OwnershipTransferred","ReimbursementMsg","ResearchMissionAvailableMsg","RetractsWar","SeasonalChallengeCompleted","SovAllClaimAquiredMsg","SovAllClaimLostMsg","SovCommandNodeEventStarted","SovCorpBillLateMsg","SovCorpClaimFailMsg","SovDisruptorMsg","SovStationEnteredFreeport","SovStructureDestroyed","SovStructureReinforced","SovStructureSelfDestructCancel","SovStructureSelfDestructFinished","SovStructureSelfDestructRequested","SovereigntyIHDamageMsg","SovereigntySBUDamageMsg","SovereigntyTCUDamageMsg","StationAggressionMsg1","StationAggressionMsg2","StationConquerMsg","StationServiceDisabled","StationServiceEnabled","StationStateChangeMsg","StoryLineMissionAvailableMsg","StructureAnchoring","StructureCourierContractChanged","StructureDestroyed","StructureFuelAlert","StructureItemsDelivered","StructureLostArmor","StructureLostShields","StructureOnline","StructureServicesOffline","StructureUnanchoring","StructureUnderAttack","TowerAlertMsg","TowerResourceAlertMsg","TransactionReversalMsg","TutorialMsg","WarAllyOfferDeclinedMsg","WarSurrenderDeclinedMsg","WarSurrenderOfferMsg","notificationTypeMoonminingExtractionStarted"],"title":"get_characters_character_id_notifications_type","description":"type string"}},"title":"get_characters_character_id_notifications_200_ok","description":"200 ok object"},"title":"get_characters_character_id_notifications_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-characters.read_notifications.v1"]}],"operationId":"get_characters_character_id_notifications","x-cached-seconds":600,"x-alternate-versions":["legacy","v1"]}},"/v2/characters/{character_id}/roles/":{"get":{"description":"Returns a character's corporation roles\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get character corporation roles","tags":["Character"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"The character's roles in thier corporation","examples":{"application/json":{"roles":["Director","Station_Manager"]}},"schema":{"type":"object","properties":{"roles":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_characters_character_id_roles_role","description":"role string"},"title":"get_characters_character_id_roles_roles","description":"roles array"},"roles_at_hq":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_characters_character_id_roles_roles_at_hq","description":"roles_at_hq string"},"title":"get_characters_character_id_roles_roles_at_hq","description":"roles_at_hq array"},"roles_at_base":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_characters_character_id_roles_roles_at_base","description":"roles_at_base string"},"title":"get_characters_character_id_roles_roles_at_base","description":"roles_at_base array"},"roles_at_other":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_characters_character_id_roles_roles_at_other","description":"roles_at_other string"},"title":"get_characters_character_id_roles_roles_at_other","description":"roles_at_other array"}},"title":"get_characters_character_id_roles_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-characters.read_corporation_roles.v1"]}],"operationId":"get_characters_character_id_roles","x-cached-seconds":3600,"x-alternate-versions":["dev","v2"]}},"/v1/characters/{character_id}/titles/":{"get":{"description":"Returns a character's titles\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get character corporation titles","tags":["Character"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of titles","examples":{"application/json":[{"title_id":1,"name":"Awesome Title"}]},"schema":{"type":"array","maxItems":16,"items":{"type":"object","properties":{"title_id":{"type":"integer","format":"int32","title":"get_characters_character_id_titles_title_id","description":"title_id integer"},"name":{"type":"string","title":"get_characters_character_id_titles_name","description":"name string"}},"title":"get_characters_character_id_titles_200_ok","description":"200 ok object"},"title":"get_characters_character_id_titles_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-characters.read_titles.v1"]}],"operationId":"get_characters_character_id_titles","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v2/characters/{character_id}/stats/":{"get":{"description":"Returns aggregate yearly stats for a character\n\n---\n\nThis route is cached for up to 86400 seconds","summary":"Yearly aggregate stats","tags":["Character"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Character stats","examples":{"application/json":[{"year":2014,"character":{"days_of_activity":365,"minutes":1000000,"sessions_started":500},"combat":{"kills_low_sec":42}},{"year":2015,"character":{"days_of_activity":365,"minutes":1000000,"sessions_started":500},"combat":{"kills_null_sec":1337}}]},"schema":{"type":"array","description":"List of character aggregate stats","maxItems":1000,"items":{"type":"object","description":"Aggregate stats for a year","required":["year"],"properties":{"year":{"type":"integer","format":"int32","description":"Gregorian year for this set of aggregates","title":"get_characters_character_id_stats_year"},"character":{"type":"object","properties":{"days_of_activity":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_days_of_activity","description":"days_of_activity integer"},"minutes":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_minutes","description":"minutes integer"},"sessions_started":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_sessions_started","description":"sessions_started integer"}},"title":"get_characters_character_id_stats_character","description":"character object"},"combat":{"type":"object","properties":{"cap_drainedby_npc":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_cap_drainedby_npc","description":"cap_drainedby_npc integer"},"cap_drainedby_pc":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_cap_drainedby_pc","description":"cap_drainedby_pc integer"},"cap_draining_pc":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_cap_draining_pc","description":"cap_draining_pc integer"},"criminal_flag_set":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_criminal_flag_set","description":"criminal_flag_set integer"},"damage_from_np_cs_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_np_cs_amount","description":"damage_from_np_cs_amount integer"},"damage_from_np_cs_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_np_cs_num_shots","description":"damage_from_np_cs_num_shots integer"},"damage_from_players_bomb_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_players_bomb_amount","description":"damage_from_players_bomb_amount integer"},"damage_from_players_bomb_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_players_bomb_num_shots","description":"damage_from_players_bomb_num_shots integer"},"damage_from_players_combat_drone_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_players_combat_drone_amount","description":"damage_from_players_combat_drone_amount integer"},"damage_from_players_combat_drone_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_players_combat_drone_num_shots","description":"damage_from_players_combat_drone_num_shots integer"},"damage_from_players_energy_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_players_energy_amount","description":"damage_from_players_energy_amount integer"},"damage_from_players_energy_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_players_energy_num_shots","description":"damage_from_players_energy_num_shots integer"},"damage_from_players_fighter_bomber_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_players_fighter_bomber_amount","description":"damage_from_players_fighter_bomber_amount integer"},"damage_from_players_fighter_bomber_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_players_fighter_bomber_num_shots","description":"damage_from_players_fighter_bomber_num_shots integer"},"damage_from_players_fighter_drone_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_players_fighter_drone_amount","description":"damage_from_players_fighter_drone_amount integer"},"damage_from_players_fighter_drone_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_players_fighter_drone_num_shots","description":"damage_from_players_fighter_drone_num_shots integer"},"damage_from_players_hybrid_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_players_hybrid_amount","description":"damage_from_players_hybrid_amount integer"},"damage_from_players_hybrid_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_players_hybrid_num_shots","description":"damage_from_players_hybrid_num_shots integer"},"damage_from_players_missile_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_players_missile_amount","description":"damage_from_players_missile_amount integer"},"damage_from_players_missile_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_players_missile_num_shots","description":"damage_from_players_missile_num_shots integer"},"damage_from_players_projectile_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_players_projectile_amount","description":"damage_from_players_projectile_amount integer"},"damage_from_players_projectile_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_players_projectile_num_shots","description":"damage_from_players_projectile_num_shots integer"},"damage_from_players_smart_bomb_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_players_smart_bomb_amount","description":"damage_from_players_smart_bomb_amount integer"},"damage_from_players_smart_bomb_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_players_smart_bomb_num_shots","description":"damage_from_players_smart_bomb_num_shots integer"},"damage_from_players_super_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_players_super_amount","description":"damage_from_players_super_amount integer"},"damage_from_players_super_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_players_super_num_shots","description":"damage_from_players_super_num_shots integer"},"damage_from_structures_total_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_structures_total_amount","description":"damage_from_structures_total_amount integer"},"damage_from_structures_total_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_from_structures_total_num_shots","description":"damage_from_structures_total_num_shots integer"},"damage_to_players_bomb_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_players_bomb_amount","description":"damage_to_players_bomb_amount integer"},"damage_to_players_bomb_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_players_bomb_num_shots","description":"damage_to_players_bomb_num_shots integer"},"damage_to_players_combat_drone_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_players_combat_drone_amount","description":"damage_to_players_combat_drone_amount integer"},"damage_to_players_combat_drone_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_players_combat_drone_num_shots","description":"damage_to_players_combat_drone_num_shots integer"},"damage_to_players_energy_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_players_energy_amount","description":"damage_to_players_energy_amount integer"},"damage_to_players_energy_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_players_energy_num_shots","description":"damage_to_players_energy_num_shots integer"},"damage_to_players_fighter_bomber_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_players_fighter_bomber_amount","description":"damage_to_players_fighter_bomber_amount integer"},"damage_to_players_fighter_bomber_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_players_fighter_bomber_num_shots","description":"damage_to_players_fighter_bomber_num_shots integer"},"damage_to_players_fighter_drone_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_players_fighter_drone_amount","description":"damage_to_players_fighter_drone_amount integer"},"damage_to_players_fighter_drone_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_players_fighter_drone_num_shots","description":"damage_to_players_fighter_drone_num_shots integer"},"damage_to_players_hybrid_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_players_hybrid_amount","description":"damage_to_players_hybrid_amount integer"},"damage_to_players_hybrid_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_players_hybrid_num_shots","description":"damage_to_players_hybrid_num_shots integer"},"damage_to_players_missile_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_players_missile_amount","description":"damage_to_players_missile_amount integer"},"damage_to_players_missile_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_players_missile_num_shots","description":"damage_to_players_missile_num_shots integer"},"damage_to_players_projectile_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_players_projectile_amount","description":"damage_to_players_projectile_amount integer"},"damage_to_players_projectile_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_players_projectile_num_shots","description":"damage_to_players_projectile_num_shots integer"},"damage_to_players_smart_bomb_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_players_smart_bomb_amount","description":"damage_to_players_smart_bomb_amount integer"},"damage_to_players_smart_bomb_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_players_smart_bomb_num_shots","description":"damage_to_players_smart_bomb_num_shots integer"},"damage_to_players_super_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_players_super_amount","description":"damage_to_players_super_amount integer"},"damage_to_players_super_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_players_super_num_shots","description":"damage_to_players_super_num_shots integer"},"damage_to_structures_total_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_structures_total_amount","description":"damage_to_structures_total_amount integer"},"damage_to_structures_total_num_shots":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_damage_to_structures_total_num_shots","description":"damage_to_structures_total_num_shots integer"},"deaths_high_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_deaths_high_sec","description":"deaths_high_sec integer"},"deaths_low_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_deaths_low_sec","description":"deaths_low_sec integer"},"deaths_null_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_deaths_null_sec","description":"deaths_null_sec integer"},"deaths_pod_high_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_deaths_pod_high_sec","description":"deaths_pod_high_sec integer"},"deaths_pod_low_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_deaths_pod_low_sec","description":"deaths_pod_low_sec integer"},"deaths_pod_null_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_deaths_pod_null_sec","description":"deaths_pod_null_sec integer"},"deaths_pod_wormhole":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_deaths_pod_wormhole","description":"deaths_pod_wormhole integer"},"deaths_wormhole":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_deaths_wormhole","description":"deaths_wormhole integer"},"drone_engage":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_drone_engage","description":"drone_engage integer"},"dscans":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_dscans","description":"dscans integer"},"duel_requested":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_duel_requested","description":"duel_requested integer"},"engagement_register":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_engagement_register","description":"engagement_register integer"},"kills_assists":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_kills_assists","description":"kills_assists integer"},"kills_high_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_kills_high_sec","description":"kills_high_sec integer"},"kills_low_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_kills_low_sec","description":"kills_low_sec integer"},"kills_null_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_kills_null_sec","description":"kills_null_sec integer"},"kills_pod_high_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_kills_pod_high_sec","description":"kills_pod_high_sec integer"},"kills_pod_low_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_kills_pod_low_sec","description":"kills_pod_low_sec integer"},"kills_pod_null_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_kills_pod_null_sec","description":"kills_pod_null_sec integer"},"kills_pod_wormhole":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_kills_pod_wormhole","description":"kills_pod_wormhole integer"},"kills_wormhole":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_kills_wormhole","description":"kills_wormhole integer"},"npc_flag_set":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_npc_flag_set","description":"npc_flag_set integer"},"probe_scans":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_probe_scans","description":"probe_scans integer"},"pvp_flag_set":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_pvp_flag_set","description":"pvp_flag_set integer"},"repair_armor_by_remote_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_repair_armor_by_remote_amount","description":"repair_armor_by_remote_amount integer"},"repair_armor_remote_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_repair_armor_remote_amount","description":"repair_armor_remote_amount integer"},"repair_armor_self_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_repair_armor_self_amount","description":"repair_armor_self_amount integer"},"repair_capacitor_by_remote_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_repair_capacitor_by_remote_amount","description":"repair_capacitor_by_remote_amount integer"},"repair_capacitor_remote_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_repair_capacitor_remote_amount","description":"repair_capacitor_remote_amount integer"},"repair_capacitor_self_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_repair_capacitor_self_amount","description":"repair_capacitor_self_amount integer"},"repair_hull_by_remote_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_repair_hull_by_remote_amount","description":"repair_hull_by_remote_amount integer"},"repair_hull_remote_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_repair_hull_remote_amount","description":"repair_hull_remote_amount integer"},"repair_hull_self_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_repair_hull_self_amount","description":"repair_hull_self_amount integer"},"repair_shield_by_remote_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_repair_shield_by_remote_amount","description":"repair_shield_by_remote_amount integer"},"repair_shield_remote_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_repair_shield_remote_amount","description":"repair_shield_remote_amount integer"},"repair_shield_self_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_repair_shield_self_amount","description":"repair_shield_self_amount integer"},"self_destructs":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_self_destructs","description":"self_destructs integer"},"warp_scramble_pc":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_warp_scramble_pc","description":"warp_scramble_pc integer"},"warp_scrambledby_npc":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_warp_scrambledby_npc","description":"warp_scrambledby_npc integer"},"warp_scrambledby_pc":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_warp_scrambledby_pc","description":"warp_scrambledby_pc integer"},"weapon_flag_set":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_weapon_flag_set","description":"weapon_flag_set integer"},"webifiedby_npc":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_webifiedby_npc","description":"webifiedby_npc integer"},"webifiedby_pc":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_webifiedby_pc","description":"webifiedby_pc integer"},"webifying_pc":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_webifying_pc","description":"webifying_pc integer"}},"title":"get_characters_character_id_stats_combat","description":"combat object"},"industry":{"type":"object","properties":{"hacking_successes":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_hacking_successes","description":"hacking_successes integer"},"jobs_cancelled":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_cancelled","description":"jobs_cancelled integer"},"jobs_completed_copy_blueprint":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_copy_blueprint","description":"jobs_completed_copy_blueprint integer"},"jobs_completed_invention":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_invention","description":"jobs_completed_invention integer"},"jobs_completed_manufacture":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture","description":"jobs_completed_manufacture integer"},"jobs_completed_manufacture_asteroid":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_asteroid","description":"jobs_completed_manufacture_asteroid integer"},"jobs_completed_manufacture_asteroid_quantity":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_asteroid_quantity","description":"jobs_completed_manufacture_asteroid_quantity integer"},"jobs_completed_manufacture_charge":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_charge","description":"jobs_completed_manufacture_charge integer"},"jobs_completed_manufacture_charge_quantity":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_charge_quantity","description":"jobs_completed_manufacture_charge_quantity integer"},"jobs_completed_manufacture_commodity":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_commodity","description":"jobs_completed_manufacture_commodity integer"},"jobs_completed_manufacture_commodity_quantity":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_commodity_quantity","description":"jobs_completed_manufacture_commodity_quantity integer"},"jobs_completed_manufacture_deployable":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_deployable","description":"jobs_completed_manufacture_deployable integer"},"jobs_completed_manufacture_deployable_quantity":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_deployable_quantity","description":"jobs_completed_manufacture_deployable_quantity integer"},"jobs_completed_manufacture_drone":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_drone","description":"jobs_completed_manufacture_drone integer"},"jobs_completed_manufacture_drone_quantity":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_drone_quantity","description":"jobs_completed_manufacture_drone_quantity integer"},"jobs_completed_manufacture_implant":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_implant","description":"jobs_completed_manufacture_implant integer"},"jobs_completed_manufacture_implant_quantity":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_implant_quantity","description":"jobs_completed_manufacture_implant_quantity integer"},"jobs_completed_manufacture_module":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_module","description":"jobs_completed_manufacture_module integer"},"jobs_completed_manufacture_module_quantity":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_module_quantity","description":"jobs_completed_manufacture_module_quantity integer"},"jobs_completed_manufacture_other":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_other","description":"jobs_completed_manufacture_other integer"},"jobs_completed_manufacture_other_quantity":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_other_quantity","description":"jobs_completed_manufacture_other_quantity integer"},"jobs_completed_manufacture_ship":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_ship","description":"jobs_completed_manufacture_ship integer"},"jobs_completed_manufacture_ship_quantity":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_ship_quantity","description":"jobs_completed_manufacture_ship_quantity integer"},"jobs_completed_manufacture_structure":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_structure","description":"jobs_completed_manufacture_structure integer"},"jobs_completed_manufacture_structure_quantity":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_structure_quantity","description":"jobs_completed_manufacture_structure_quantity integer"},"jobs_completed_manufacture_subsystem":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_subsystem","description":"jobs_completed_manufacture_subsystem integer"},"jobs_completed_manufacture_subsystem_quantity":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_manufacture_subsystem_quantity","description":"jobs_completed_manufacture_subsystem_quantity integer"},"jobs_completed_material_productivity":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_material_productivity","description":"jobs_completed_material_productivity integer"},"jobs_completed_time_productivity":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_completed_time_productivity","description":"jobs_completed_time_productivity integer"},"jobs_started_copy_blueprint":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_started_copy_blueprint","description":"jobs_started_copy_blueprint integer"},"jobs_started_invention":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_started_invention","description":"jobs_started_invention integer"},"jobs_started_manufacture":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_started_manufacture","description":"jobs_started_manufacture integer"},"jobs_started_material_productivity":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_started_material_productivity","description":"jobs_started_material_productivity integer"},"jobs_started_time_productivity":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jobs_started_time_productivity","description":"jobs_started_time_productivity integer"},"reprocess_item":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_reprocess_item","description":"reprocess_item integer"},"reprocess_item_quantity":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_reprocess_item_quantity","description":"reprocess_item_quantity integer"}},"title":"get_characters_character_id_stats_industry","description":"industry object"},"inventory":{"type":"object","properties":{"abandon_loot_quantity":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_abandon_loot_quantity","description":"abandon_loot_quantity integer"},"trash_item_quantity":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_trash_item_quantity","description":"trash_item_quantity integer"}},"title":"get_characters_character_id_stats_inventory","description":"inventory object"},"isk":{"type":"object","properties":{"in":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_in","description":"in integer"},"out":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_out","description":"out integer"}},"title":"get_characters_character_id_stats_isk","description":"isk object"},"market":{"type":"object","properties":{"accept_contracts_courier":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_accept_contracts_courier","description":"accept_contracts_courier integer"},"accept_contracts_item_exchange":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_accept_contracts_item_exchange","description":"accept_contracts_item_exchange integer"},"buy_orders_placed":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_buy_orders_placed","description":"buy_orders_placed integer"},"cancel_market_order":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_cancel_market_order","description":"cancel_market_order integer"},"create_contracts_auction":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_create_contracts_auction","description":"create_contracts_auction integer"},"create_contracts_courier":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_create_contracts_courier","description":"create_contracts_courier integer"},"create_contracts_item_exchange":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_create_contracts_item_exchange","description":"create_contracts_item_exchange integer"},"deliver_courier_contract":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_deliver_courier_contract","description":"deliver_courier_contract integer"},"isk_gained":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_isk_gained","description":"isk_gained integer"},"isk_spent":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_isk_spent","description":"isk_spent integer"},"modify_market_order":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_modify_market_order","description":"modify_market_order integer"},"search_contracts":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_search_contracts","description":"search_contracts integer"},"sell_orders_placed":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_sell_orders_placed","description":"sell_orders_placed integer"}},"title":"get_characters_character_id_stats_market","description":"market object"},"mining":{"type":"object","properties":{"drone_mine":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_drone_mine","description":"drone_mine integer"},"ore_arkonor":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_ore_arkonor","description":"ore_arkonor integer"},"ore_bistot":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_ore_bistot","description":"ore_bistot integer"},"ore_crokite":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_ore_crokite","description":"ore_crokite integer"},"ore_dark_ochre":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_ore_dark_ochre","description":"ore_dark_ochre integer"},"ore_gneiss":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_ore_gneiss","description":"ore_gneiss integer"},"ore_harvestable_cloud":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_ore_harvestable_cloud","description":"ore_harvestable_cloud integer"},"ore_hedbergite":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_ore_hedbergite","description":"ore_hedbergite integer"},"ore_hemorphite":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_ore_hemorphite","description":"ore_hemorphite integer"},"ore_ice":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_ore_ice","description":"ore_ice integer"},"ore_jaspet":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_ore_jaspet","description":"ore_jaspet integer"},"ore_kernite":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_ore_kernite","description":"ore_kernite integer"},"ore_mercoxit":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_ore_mercoxit","description":"ore_mercoxit integer"},"ore_omber":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_ore_omber","description":"ore_omber integer"},"ore_plagioclase":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_ore_plagioclase","description":"ore_plagioclase integer"},"ore_pyroxeres":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_ore_pyroxeres","description":"ore_pyroxeres integer"},"ore_scordite":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_ore_scordite","description":"ore_scordite integer"},"ore_spodumain":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_ore_spodumain","description":"ore_spodumain integer"},"ore_veldspar":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_ore_veldspar","description":"ore_veldspar integer"}},"title":"get_characters_character_id_stats_mining","description":"mining object"},"module":{"type":"object","properties":{"activations_armor_hardener":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_armor_hardener","description":"activations_armor_hardener integer"},"activations_armor_repair_unit":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_armor_repair_unit","description":"activations_armor_repair_unit integer"},"activations_armor_resistance_shift_hardener":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_armor_resistance_shift_hardener","description":"activations_armor_resistance_shift_hardener integer"},"activations_automated_targeting_system":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_automated_targeting_system","description":"activations_automated_targeting_system integer"},"activations_bastion":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_bastion","description":"activations_bastion integer"},"activations_bomb_launcher":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_bomb_launcher","description":"activations_bomb_launcher integer"},"activations_capacitor_booster":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_capacitor_booster","description":"activations_capacitor_booster integer"},"activations_cargo_scanner":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_cargo_scanner","description":"activations_cargo_scanner integer"},"activations_cloaking_device":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_cloaking_device","description":"activations_cloaking_device integer"},"activations_clone_vat_bay":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_clone_vat_bay","description":"activations_clone_vat_bay integer"},"activations_cynosural_field":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_cynosural_field","description":"activations_cynosural_field integer"},"activations_damage_control":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_damage_control","description":"activations_damage_control integer"},"activations_data_miners":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_data_miners","description":"activations_data_miners integer"},"activations_drone_control_unit":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_drone_control_unit","description":"activations_drone_control_unit integer"},"activations_drone_tracking_modules":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_drone_tracking_modules","description":"activations_drone_tracking_modules integer"},"activations_eccm":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_eccm","description":"activations_eccm integer"},"activations_ecm":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_ecm","description":"activations_ecm integer"},"activations_ecm_burst":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_ecm_burst","description":"activations_ecm_burst integer"},"activations_energy_destabilizer":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_energy_destabilizer","description":"activations_energy_destabilizer integer"},"activations_energy_vampire":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_energy_vampire","description":"activations_energy_vampire integer"},"activations_energy_weapon":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_energy_weapon","description":"activations_energy_weapon integer"},"activations_festival_launcher":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_festival_launcher","description":"activations_festival_launcher integer"},"activations_frequency_mining_laser":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_frequency_mining_laser","description":"activations_frequency_mining_laser integer"},"activations_fueled_armor_repairer":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_fueled_armor_repairer","description":"activations_fueled_armor_repairer integer"},"activations_fueled_shield_booster":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_fueled_shield_booster","description":"activations_fueled_shield_booster integer"},"activations_gang_coordinator":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_gang_coordinator","description":"activations_gang_coordinator integer"},"activations_gas_cloud_harvester":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_gas_cloud_harvester","description":"activations_gas_cloud_harvester integer"},"activations_hull_repair_unit":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_hull_repair_unit","description":"activations_hull_repair_unit integer"},"activations_hybrid_weapon":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_hybrid_weapon","description":"activations_hybrid_weapon integer"},"activations_industrial_core":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_industrial_core","description":"activations_industrial_core integer"},"activations_interdiction_sphere_launcher":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_interdiction_sphere_launcher","description":"activations_interdiction_sphere_launcher integer"},"activations_micro_jump_drive":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_micro_jump_drive","description":"activations_micro_jump_drive integer"},"activations_mining_laser":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_mining_laser","description":"activations_mining_laser integer"},"activations_missile_launcher":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_missile_launcher","description":"activations_missile_launcher integer"},"activations_passive_targeting_system":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_passive_targeting_system","description":"activations_passive_targeting_system integer"},"activations_probe_launcher":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_probe_launcher","description":"activations_probe_launcher integer"},"activations_projected_eccm":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_projected_eccm","description":"activations_projected_eccm integer"},"activations_projectile_weapon":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_projectile_weapon","description":"activations_projectile_weapon integer"},"activations_propulsion_module":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_propulsion_module","description":"activations_propulsion_module integer"},"activations_remote_armor_repairer":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_remote_armor_repairer","description":"activations_remote_armor_repairer integer"},"activations_remote_capacitor_transmitter":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_remote_capacitor_transmitter","description":"activations_remote_capacitor_transmitter integer"},"activations_remote_ecm_burst":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_remote_ecm_burst","description":"activations_remote_ecm_burst integer"},"activations_remote_hull_repairer":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_remote_hull_repairer","description":"activations_remote_hull_repairer integer"},"activations_remote_sensor_booster":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_remote_sensor_booster","description":"activations_remote_sensor_booster integer"},"activations_remote_sensor_damper":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_remote_sensor_damper","description":"activations_remote_sensor_damper integer"},"activations_remote_shield_booster":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_remote_shield_booster","description":"activations_remote_shield_booster integer"},"activations_remote_tracking_computer":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_remote_tracking_computer","description":"activations_remote_tracking_computer integer"},"activations_salvager":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_salvager","description":"activations_salvager integer"},"activations_sensor_booster":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_sensor_booster","description":"activations_sensor_booster integer"},"activations_shield_booster":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_shield_booster","description":"activations_shield_booster integer"},"activations_shield_hardener":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_shield_hardener","description":"activations_shield_hardener integer"},"activations_ship_scanner":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_ship_scanner","description":"activations_ship_scanner integer"},"activations_siege":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_siege","description":"activations_siege integer"},"activations_smart_bomb":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_smart_bomb","description":"activations_smart_bomb integer"},"activations_stasis_web":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_stasis_web","description":"activations_stasis_web integer"},"activations_strip_miner":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_strip_miner","description":"activations_strip_miner integer"},"activations_super_weapon":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_super_weapon","description":"activations_super_weapon integer"},"activations_survey_scanner":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_survey_scanner","description":"activations_survey_scanner integer"},"activations_target_breaker":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_target_breaker","description":"activations_target_breaker integer"},"activations_target_painter":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_target_painter","description":"activations_target_painter integer"},"activations_tracking_computer":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_tracking_computer","description":"activations_tracking_computer integer"},"activations_tracking_disruptor":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_tracking_disruptor","description":"activations_tracking_disruptor integer"},"activations_tractor_beam":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_tractor_beam","description":"activations_tractor_beam integer"},"activations_triage":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_triage","description":"activations_triage integer"},"activations_warp_disrupt_field_generator":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_warp_disrupt_field_generator","description":"activations_warp_disrupt_field_generator integer"},"activations_warp_scrambler":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_activations_warp_scrambler","description":"activations_warp_scrambler integer"},"link_weapons":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_link_weapons","description":"link_weapons integer"},"overload":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_overload","description":"overload integer"},"repairs":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_repairs","description":"repairs integer"}},"title":"get_characters_character_id_stats_module","description":"module object"},"orbital":{"type":"object","properties":{"strike_characters_killed":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_strike_characters_killed","description":"strike_characters_killed integer"},"strike_damage_to_players_armor_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_strike_damage_to_players_armor_amount","description":"strike_damage_to_players_armor_amount integer"},"strike_damage_to_players_shield_amount":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_strike_damage_to_players_shield_amount","description":"strike_damage_to_players_shield_amount integer"}},"title":"get_characters_character_id_stats_orbital","description":"orbital object"},"pve":{"type":"object","properties":{"dungeons_completed_agent":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_dungeons_completed_agent","description":"dungeons_completed_agent integer"},"dungeons_completed_distribution":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_dungeons_completed_distribution","description":"dungeons_completed_distribution integer"},"missions_succeeded":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_missions_succeeded","description":"missions_succeeded integer"},"missions_succeeded_epic_arc":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_missions_succeeded_epic_arc","description":"missions_succeeded_epic_arc integer"}},"title":"get_characters_character_id_stats_pve","description":"pve object"},"social":{"type":"object","properties":{"add_contact_bad":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_add_contact_bad","description":"add_contact_bad integer"},"add_contact_good":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_add_contact_good","description":"add_contact_good integer"},"add_contact_high":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_add_contact_high","description":"add_contact_high integer"},"add_contact_horrible":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_add_contact_horrible","description":"add_contact_horrible integer"},"add_contact_neutral":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_add_contact_neutral","description":"add_contact_neutral integer"},"add_note":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_add_note","description":"add_note integer"},"added_as_contact_bad":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_added_as_contact_bad","description":"added_as_contact_bad integer"},"added_as_contact_good":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_added_as_contact_good","description":"added_as_contact_good integer"},"added_as_contact_high":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_added_as_contact_high","description":"added_as_contact_high integer"},"added_as_contact_horrible":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_added_as_contact_horrible","description":"added_as_contact_horrible integer"},"added_as_contact_neutral":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_added_as_contact_neutral","description":"added_as_contact_neutral integer"},"calendar_event_created":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_calendar_event_created","description":"calendar_event_created integer"},"chat_messages_alliance":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_chat_messages_alliance","description":"chat_messages_alliance integer"},"chat_messages_constellation":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_chat_messages_constellation","description":"chat_messages_constellation integer"},"chat_messages_corporation":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_chat_messages_corporation","description":"chat_messages_corporation integer"},"chat_messages_fleet":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_chat_messages_fleet","description":"chat_messages_fleet integer"},"chat_messages_region":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_chat_messages_region","description":"chat_messages_region integer"},"chat_messages_solarsystem":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_chat_messages_solarsystem","description":"chat_messages_solarsystem integer"},"chat_messages_warfaction":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_chat_messages_warfaction","description":"chat_messages_warfaction integer"},"chat_total_message_length":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_chat_total_message_length","description":"chat_total_message_length integer"},"direct_trades":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_direct_trades","description":"direct_trades integer"},"fleet_broadcasts":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_fleet_broadcasts","description":"fleet_broadcasts integer"},"fleet_joins":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_fleet_joins","description":"fleet_joins integer"},"mails_received":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_mails_received","description":"mails_received integer"},"mails_sent":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_mails_sent","description":"mails_sent integer"}},"title":"get_characters_character_id_stats_social","description":"social object"},"travel":{"type":"object","properties":{"acceleration_gate_activations":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_acceleration_gate_activations","description":"acceleration_gate_activations integer"},"align_to":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_align_to","description":"align_to integer"},"distance_warped_high_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_distance_warped_high_sec","description":"distance_warped_high_sec integer"},"distance_warped_low_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_distance_warped_low_sec","description":"distance_warped_low_sec integer"},"distance_warped_null_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_distance_warped_null_sec","description":"distance_warped_null_sec integer"},"distance_warped_wormhole":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_distance_warped_wormhole","description":"distance_warped_wormhole integer"},"docks_high_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_docks_high_sec","description":"docks_high_sec integer"},"docks_low_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_docks_low_sec","description":"docks_low_sec integer"},"docks_null_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_docks_null_sec","description":"docks_null_sec integer"},"jumps_stargate_high_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jumps_stargate_high_sec","description":"jumps_stargate_high_sec integer"},"jumps_stargate_low_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jumps_stargate_low_sec","description":"jumps_stargate_low_sec integer"},"jumps_stargate_null_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jumps_stargate_null_sec","description":"jumps_stargate_null_sec integer"},"jumps_wormhole":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_jumps_wormhole","description":"jumps_wormhole integer"},"warps_high_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_warps_high_sec","description":"warps_high_sec integer"},"warps_low_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_warps_low_sec","description":"warps_low_sec integer"},"warps_null_sec":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_warps_null_sec","description":"warps_null_sec integer"},"warps_to_bookmark":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_warps_to_bookmark","description":"warps_to_bookmark integer"},"warps_to_celestial":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_warps_to_celestial","description":"warps_to_celestial integer"},"warps_to_fleet_member":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_warps_to_fleet_member","description":"warps_to_fleet_member integer"},"warps_to_scan_result":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_warps_to_scan_result","description":"warps_to_scan_result integer"},"warps_wormhole":{"type":"integer","format":"int64","title":"get_characters_character_id_stats_warps_wormhole","description":"warps_wormhole integer"}},"title":"get_characters_character_id_stats_travel","description":"travel object"}},"title":"get_characters_character_id_stats_200_ok"},"title":"get_characters_character_id_stats_ok"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-characterstats.read.v1"]}],"operationId":"get_characters_character_id_stats","x-cached-seconds":86400,"x-alternate-versions":["dev","v2"]}},"/v3/characters/{character_id}/clones/":{"get":{"description":"A list of the character's clones\n\n---\n\nThis route is cached for up to 120 seconds","summary":"Get clones","tags":["Clones"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Clone information for the given character","examples":{"application/json":{"home_location":{"location_id":1021348135816,"location_type":"structure"},"jump_clones":[{"jump_clone_id":12345,"location_id":60003463,"location_type":"station","implants":[22118]}]}},"schema":{"type":"object","required":["jump_clones"],"properties":{"last_clone_jump_date":{"type":"string","format":"date-time","title":"get_characters_character_id_clones_last_clone_jump_date","description":"last_clone_jump_date string"},"home_location":{"type":"object","properties":{"location_id":{"type":"integer","format":"int64","title":"get_characters_character_id_clones_location_id","description":"location_id integer"},"location_type":{"type":"string","enum":["station","structure"],"title":"get_characters_character_id_clones_location_type","description":"location_type string"}},"title":"get_characters_character_id_clones_home_location","description":"home_location object"},"last_station_change_date":{"type":"string","format":"date-time","title":"get_characters_character_id_clones_last_station_change_date","description":"last_station_change_date string"},"jump_clones":{"type":"array","maxItems":10,"items":{"type":"object","required":["jump_clone_id","location_id","location_type","implants"],"properties":{"jump_clone_id":{"type":"integer","format":"int32","title":"get_characters_character_id_clones_jump_clone_id","description":"jump_clone_id integer"},"name":{"type":"string","title":"get_characters_character_id_clones_name","description":"name string"},"location_id":{"type":"integer","format":"int64","title":"get_characters_character_id_clones_location_id","description":"location_id integer"},"location_type":{"type":"string","enum":["station","structure"],"title":"get_characters_character_id_clones_location_type","description":"location_type string"},"implants":{"type":"array","maxItems":11,"items":{"type":"integer","format":"int32","title":"get_characters_character_id_clones_implant","description":"implant integer"},"title":"get_characters_character_id_clones_implants","description":"implants array"}},"title":"get_characters_character_id_clones_jump_clone","description":"jump_clone object"},"title":"get_characters_character_id_clones_jump_clones","description":"jump_clones array"}},"title":"get_characters_character_id_clones_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-clones.read_clones.v1"]}],"operationId":"get_characters_character_id_clones","x-cached-seconds":120,"x-alternate-versions":["dev","v3"]}},"/v1/characters/{character_id}/implants/":{"get":{"description":"Return implants on the active clone of a character\n\n---\n\nThis route is cached for up to 300 seconds","summary":"Get active implants","tags":["Clones"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of implant type ids","examples":{"application/json":[1,2,3]},"schema":{"type":"array","maxItems":11,"items":{"type":"integer","format":"int32","title":"get_characters_character_id_implants_200_ok","description":"200 ok integer"},"title":"get_characters_character_id_implants_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-clones.read_implants.v1"]}],"operationId":"get_characters_character_id_implants","x-cached-seconds":300,"x-alternate-versions":["dev","legacy","v1"]}},"/v2/characters/{character_id}/contacts/":{"delete":{"description":"Bulk delete contacts\n\n---\n","summary":"Delete contacts","tags":["Contacts"],"parameters":[{"$ref":"#/parameters/character_id"},{"name":"contact_ids","in":"query","description":"A list of contacts to delete","required":true,"type":"array","minItems":1,"maxItems":20,"items":{"type":"integer","format":"int32"}},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Contacts deleted"},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-characters.write_contacts.v1"]}],"operationId":"delete_characters_character_id_contacts","x-alternate-versions":["dev","v2"]}},"/v1/characters/{character_id}/contacts/":{"get":{"description":"Return contacts of a character\n\n---\n\nThis route is cached for up to 300 seconds","summary":"Get contacts","tags":["Contacts"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of contacts","examples":{"application/json":[{"standing":9.9,"contact_type":"character","contact_id":123,"is_watched":true,"is_blocked":true}]},"schema":{"type":"array","maxItems":1024,"items":{"type":"object","required":["standing","contact_type","contact_id"],"properties":{"standing":{"type":"number","format":"float","description":"Standing of the contact","title":"get_characters_character_id_contacts_standing"},"contact_type":{"type":"string","enum":["character","corporation","alliance","faction"],"title":"get_characters_character_id_contacts_contact_type","description":"contact_type string"},"contact_id":{"type":"integer","format":"int32","title":"get_characters_character_id_contacts_contact_id","description":"contact_id integer"},"is_watched":{"type":"boolean","description":"Whether this contact is being watched","title":"get_characters_character_id_contacts_is_watched"},"is_blocked":{"type":"boolean","description":"Whether this contact is in the blocked list. Note a missing value denotes unknown, not true or false","title":"get_characters_character_id_contacts_is_blocked"},"label_id":{"type":"integer","format":"int64","description":"Custom label of the contact","title":"get_characters_character_id_contacts_label_id"}},"title":"get_characters_character_id_contacts_200_ok","description":"200 ok object"},"title":"get_characters_character_id_contacts_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-characters.read_contacts.v1"]}],"operationId":"get_characters_character_id_contacts","x-cached-seconds":300,"x-alternate-versions":["dev","legacy","v1"]},"post":{"description":"Bulk add contacts with same settings\n\n---\n","summary":"Add contacts","tags":["Contacts"],"parameters":[{"$ref":"#/parameters/character_id"},{"name":"contact_ids","in":"body","description":"A list of contacts to add","required":true,"schema":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"integer","format":"int32","description":"ID of the contact to add","title":"post_characters_character_id_contacts_contact_id"},"title":"post_characters_character_id_contacts_contact_ids","description":"contact_ids array"}},{"$ref":"#/parameters/datasource"},{"name":"label_id","in":"query","description":"Add a custom label to the new contact","required":false,"type":"integer","format":"int64","default":0},{"name":"standing","in":"query","description":"Standing for the new contact","required":true,"type":"number","format":"float","minimum":-10,"maximum":10},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"name":"watched","in":"query","description":"Whether the new contact should be watched, note this is only effective on characters","required":false,"type":"boolean","default":false},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"201":{"description":"A list of contact ids that successfully created","examples":{"application/json":[123,456]},"schema":{"type":"array","maxItems":100,"items":{"type":"integer","format":"int32","title":"post_characters_character_id_contacts_201_created","description":"201 created integer"},"title":"post_characters_character_id_contacts_created","description":"201 created array"}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-characters.write_contacts.v1"]}],"operationId":"post_characters_character_id_contacts","x-alternate-versions":["dev","legacy","v1"]},"put":{"description":"Bulk edit contacts with same settings\n\n---\n","summary":"Edit contacts","tags":["Contacts"],"parameters":[{"$ref":"#/parameters/character_id"},{"name":"contact_ids","in":"body","description":"A list of contacts to edit","required":true,"schema":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"integer","format":"int32","description":"ID of the contact to edit","title":"put_characters_character_id_contacts_contact_id"},"title":"put_characters_character_id_contacts_contact_ids","description":"contact_ids array"}},{"$ref":"#/parameters/datasource"},{"name":"label_id","in":"query","description":"Add a custom label to the contact, use 0 for clearing label","required":false,"type":"integer","format":"int64","default":0},{"name":"standing","in":"query","description":"Standing for the contact","required":true,"type":"number","format":"float","minimum":-10,"maximum":10},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"name":"watched","in":"query","description":"Whether the contact should be watched, note this is only effective on characters","required":false,"type":"boolean","default":false},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Contacts updated"},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-characters.write_contacts.v1"]}],"operationId":"put_characters_character_id_contacts","x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/contacts/":{"get":{"description":"Return contacts of a corporation\n\n---\n\nThis route is cached for up to 300 seconds","summary":"Get corporation contacts","tags":["Contacts"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of contacts","examples":{"application/json":[{"standing":9.9,"contact_type":"character","contact_id":123,"is_watched":true}]},"schema":{"type":"array","maxItems":200,"items":{"type":"object","required":["standing","contact_type","contact_id"],"properties":{"standing":{"type":"number","format":"float","description":"Standing of the contact","title":"get_corporations_corporation_id_contacts_standing"},"contact_type":{"type":"string","enum":["character","corporation","alliance","faction"],"title":"get_corporations_corporation_id_contacts_contact_type","description":"contact_type string"},"contact_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_contacts_contact_id","description":"contact_id integer"},"is_watched":{"type":"boolean","description":"Whether this contact is being watched","title":"get_corporations_corporation_id_contacts_is_watched"},"label_id":{"type":"integer","format":"int64","description":"Custom label of the contact","title":"get_corporations_corporation_id_contacts_label_id"}},"title":"get_corporations_corporation_id_contacts_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_contacts_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":[],"security":[{"evesso":["esi-corporations.read_contacts.v1"]}],"operationId":"get_corporations_corporation_id_contacts","x-cached-seconds":300,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/alliances/{alliance_id}/contacts/":{"get":{"description":"Return contacts of an alliance\n\n---\n\nThis route is cached for up to 300 seconds","summary":"Get alliance contacts","tags":["Contacts"],"parameters":[{"$ref":"#/parameters/alliance_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of contacts","examples":{"application/json":[{"standing":9.9,"contact_type":"character","contact_id":2112625428}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["standing","contact_type","contact_id"],"properties":{"standing":{"type":"number","format":"float","description":"Standing of the contact","title":"get_alliances_alliance_id_contacts_standing"},"contact_type":{"type":"string","enum":["character","corporation","alliance","faction"],"title":"get_alliances_alliance_id_contacts_contact_type","description":"contact_type string"},"contact_id":{"type":"integer","format":"int32","title":"get_alliances_alliance_id_contacts_contact_id","description":"contact_id integer"},"label_id":{"type":"integer","format":"int64","description":"Custom label of the contact","title":"get_alliances_alliance_id_contacts_label_id"}},"title":"get_alliances_alliance_id_contacts_200_ok","description":"200 ok object"},"title":"get_alliances_alliance_id_contacts_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-alliances.read_contacts.v1"]}],"operationId":"get_alliances_alliance_id_contacts","x-cached-seconds":300,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/contacts/labels/":{"get":{"description":"Return custom labels for contacts the character defined\n\n---\n\nThis route is cached for up to 300 seconds","summary":"Get contact labels","tags":["Contacts"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of contact labels","examples":{"application/json":[{"label_id":123,"label_name":"Friends"}]},"schema":{"type":"array","maxItems":64,"items":{"type":"object","required":["label_id","label_name"],"properties":{"label_id":{"type":"integer","format":"int64","title":"get_characters_character_id_contacts_labels_label_id","description":"label_id integer"},"label_name":{"type":"string","title":"get_characters_character_id_contacts_labels_label_name","description":"label_name string"}},"title":"get_characters_character_id_contacts_labels_200_ok","description":"200 ok object"},"title":"get_characters_character_id_contacts_labels_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-characters.read_contacts.v1"]}],"operationId":"get_characters_character_id_contacts_labels","x-cached-seconds":300,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/contracts/":{"get":{"description":"Returns contracts available to a character, only if the character is issuer, acceptor or assignee. Only returns contracts no older than 30 days, or if the status is \"in_progress\".\n\n---\n\nThis route is cached for up to 300 seconds","summary":"Get contracts","tags":["Contracts"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of contracts","examples":{"application/json":[{"contract_id":1,"issuer_id":123,"issuer_corporation_id":456,"assignee_id":0,"acceptor_id":0,"type":"auction","status":"outstanding","for_corporation":true,"availability":"public","date_issued":"2017-06-06T13:12:32Z","date_expired":"2017-06-13T13:12:32Z","start_location_id":60014719,"end_location_id":60014719,"date_accepted":"2017-06-06T13:12:32Z","days_to_complete":0,"date_completed":"2017-06-06T13:12:32Z","price":1000000.01,"reward":0.01,"buyout":10000000000.01,"volume":0.01}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["contract_id","issuer_id","issuer_corporation_id","assignee_id","acceptor_id","type","status","for_corporation","availability","date_issued","date_expired"],"properties":{"contract_id":{"type":"integer","format":"int32","title":"get_characters_character_id_contracts_contract_id","description":"contract_id integer"},"issuer_id":{"type":"integer","format":"int32","description":"Character ID for the issuer","title":"get_characters_character_id_contracts_issuer_id"},"issuer_corporation_id":{"type":"integer","format":"int32","description":"Character's corporation ID for the issuer","title":"get_characters_character_id_contracts_issuer_corporation_id"},"assignee_id":{"type":"integer","format":"int32","description":"ID to whom the contract is assigned, can be corporation or character ID","title":"get_characters_character_id_contracts_assignee_id"},"acceptor_id":{"type":"integer","format":"int32","description":"Who will accept the contract","title":"get_characters_character_id_contracts_acceptor_id"},"start_location_id":{"type":"integer","format":"int64","description":"Start location ID (for Couriers contract)","title":"get_characters_character_id_contracts_start_location_id"},"end_location_id":{"type":"integer","format":"int64","description":"End location ID (for Couriers contract)","title":"get_characters_character_id_contracts_end_location_id"},"type":{"type":"string","description":"Type of the contract","enum":["unknown","item_exchange","auction","courier","loan"],"title":"get_characters_character_id_contracts_type"},"status":{"type":"string","description":"Status of the the contract","enum":["outstanding","in_progress","finished_issuer","finished_contractor","finished","cancelled","rejected","failed","deleted","reversed"],"title":"get_characters_character_id_contracts_status"},"title":{"type":"string","description":"Title of the contract","title":"get_characters_character_id_contracts_title"},"for_corporation":{"type":"boolean","description":"true if the contract was issued on behalf of the issuer's corporation","title":"get_characters_character_id_contracts_for_corporation"},"availability":{"type":"string","description":"To whom the contract is available","enum":["public","personal","corporation","alliance"],"title":"get_characters_character_id_contracts_availability"},"date_issued":{"type":"string","format":"date-time","description":"\u0421reation date of the contract","title":"get_characters_character_id_contracts_date_issued"},"date_expired":{"type":"string","format":"date-time","description":"Expiration date of the contract","title":"get_characters_character_id_contracts_date_expired"},"date_accepted":{"type":"string","format":"date-time","description":"Date of confirmation of contract","title":"get_characters_character_id_contracts_date_accepted"},"days_to_complete":{"type":"integer","format":"int32","description":"Number of days to perform the contract","title":"get_characters_character_id_contracts_days_to_complete"},"date_completed":{"type":"string","format":"date-time","description":"Date of completed of contract","title":"get_characters_character_id_contracts_date_completed"},"price":{"type":"number","format":"double","description":"Price of contract (for ItemsExchange and Auctions)","title":"get_characters_character_id_contracts_price"},"reward":{"type":"number","format":"double","description":"Remuneration for contract (for Couriers only)","title":"get_characters_character_id_contracts_reward"},"collateral":{"type":"number","format":"double","description":"Collateral price (for Couriers only)","title":"get_characters_character_id_contracts_collateral"},"buyout":{"type":"number","format":"double","description":"Buyout price (for Auctions only)","title":"get_characters_character_id_contracts_buyout"},"volume":{"type":"number","format":"double","description":"Volume of items in the contract","title":"get_characters_character_id_contracts_volume"}},"title":"get_characters_character_id_contracts_200_ok","description":"200 ok object"},"title":"get_characters_character_id_contracts_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-contracts.read_character_contracts.v1"]}],"operationId":"get_characters_character_id_contracts","x-cached-seconds":300,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/contracts/{contract_id}/items/":{"get":{"description":"Lists items of a particular contract\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get contract items","tags":["Contracts"],"parameters":[{"$ref":"#/parameters/character_id"},{"name":"contract_id","in":"path","description":"ID of a contract","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of items in this contract","examples":{"application/json":[{"record_id":123456,"type_id":587,"quantity":1,"is_singleton":false,"is_included":true}]},"schema":{"type":"array","maxItems":2000,"items":{"type":"object","required":["record_id","type_id","quantity","is_singleton","is_included"],"properties":{"record_id":{"type":"integer","format":"int64","description":"Unique ID for the item","title":"get_characters_character_id_contracts_contract_id_items_record_id"},"type_id":{"type":"integer","format":"int32","description":"Type ID for item","title":"get_characters_character_id_contracts_contract_id_items_type_id"},"quantity":{"type":"integer","format":"int32","description":"Number of items in the stack","title":"get_characters_character_id_contracts_contract_id_items_quantity"},"raw_quantity":{"type":"integer","format":"int32","description":"-1 indicates that the item is a singleton (non-stackable). If the item happens to be a Blueprint, -1 is an Original and -2 is a Blueprint Copy","title":"get_characters_character_id_contracts_contract_id_items_raw_quantity"},"is_singleton":{"type":"boolean","title":"get_characters_character_id_contracts_contract_id_items_is_singleton","description":"is_singleton boolean"},"is_included":{"type":"boolean","description":"true if the contract issuer has submitted this item with the contract, false if the isser is asking for this item in the contract.","title":"get_characters_character_id_contracts_contract_id_items_is_included"}},"title":"get_characters_character_id_contracts_contract_id_items_200_ok","description":"200 ok object"},"title":"get_characters_character_id_contracts_contract_id_items_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-contracts.read_character_contracts.v1"]}],"operationId":"get_characters_character_id_contracts_contract_id_items","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/contracts/{contract_id}/bids/":{"get":{"description":"Lists bids on a particular auction contract\n\n---\n\nThis route is cached for up to 300 seconds","summary":"Get contract bids","tags":["Contracts"],"parameters":[{"$ref":"#/parameters/character_id"},{"name":"contract_id","in":"path","description":"ID of a contract","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of bids","examples":{"application/json":[{"bid_id":1,"bidder_id":123,"date_bid":"2017-01-01T10:10:10Z","amount":1.23}]},"schema":{"type":"array","maxItems":2000,"items":{"type":"object","required":["bid_id","bidder_id","date_bid","amount"],"properties":{"bid_id":{"type":"integer","format":"int32","description":"Unique ID for the bid","title":"get_characters_character_id_contracts_contract_id_bids_bid_id"},"bidder_id":{"type":"integer","format":"int32","description":"Character ID of the bidder","title":"get_characters_character_id_contracts_contract_id_bids_bidder_id"},"date_bid":{"type":"string","format":"date-time","description":"Datetime when the bid was placed","title":"get_characters_character_id_contracts_contract_id_bids_date_bid"},"amount":{"type":"number","format":"float","description":"The amount bid, in ISK","title":"get_characters_character_id_contracts_contract_id_bids_amount"}},"title":"get_characters_character_id_contracts_contract_id_bids_200_ok","description":"200 ok object"},"title":"get_characters_character_id_contracts_contract_id_bids_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-contracts.read_character_contracts.v1"]}],"operationId":"get_characters_character_id_contracts_contract_id_bids","x-cached-seconds":300,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/contracts/":{"get":{"description":"Returns contracts available to a coporation, only if the corporation is issuer, acceptor or assignee. Only returns contracts no older than 30 days, or if the status is \"in_progress\".\n\n---\n\nThis route is cached for up to 300 seconds","summary":"Get coporation contracts","tags":["Contracts"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of contracts","examples":{"application/json":[{"contract_id":1,"issuer_id":123,"issuer_corporation_id":456,"assignee_id":0,"acceptor_id":0,"type":"auction","status":"outstanding","for_corporation":true,"availability":"public","date_issued":"2017-06-06T13:12:32Z","date_expired":"2017-06-13T13:12:32Z","start_location_id":60014719,"end_location_id":60014719,"days_to_complete":0,"price":1000000.01,"reward":0.01,"buyout":10000000000.01,"volume":0.01}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["contract_id","issuer_id","issuer_corporation_id","assignee_id","acceptor_id","type","status","for_corporation","availability","date_issued","date_expired"],"properties":{"contract_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_contracts_contract_id","description":"contract_id integer"},"issuer_id":{"type":"integer","format":"int32","description":"Character ID for the issuer","title":"get_corporations_corporation_id_contracts_issuer_id"},"issuer_corporation_id":{"type":"integer","format":"int32","description":"Character's corporation ID for the issuer","title":"get_corporations_corporation_id_contracts_issuer_corporation_id"},"assignee_id":{"type":"integer","format":"int32","description":"ID to whom the contract is assigned, can be corporation or character ID","title":"get_corporations_corporation_id_contracts_assignee_id"},"acceptor_id":{"type":"integer","format":"int32","description":"Who will accept the contract","title":"get_corporations_corporation_id_contracts_acceptor_id"},"start_location_id":{"type":"integer","format":"int64","description":"Start location ID (for Couriers contract)","title":"get_corporations_corporation_id_contracts_start_location_id"},"end_location_id":{"type":"integer","format":"int64","description":"End location ID (for Couriers contract)","title":"get_corporations_corporation_id_contracts_end_location_id"},"type":{"type":"string","description":"Type of the contract","enum":["unknown","item_exchange","auction","courier","loan"],"title":"get_corporations_corporation_id_contracts_type"},"status":{"type":"string","description":"Status of the the contract","enum":["outstanding","in_progress","finished_issuer","finished_contractor","finished","cancelled","rejected","failed","deleted","reversed"],"title":"get_corporations_corporation_id_contracts_status"},"title":{"type":"string","description":"Title of the contract","title":"get_corporations_corporation_id_contracts_title"},"for_corporation":{"type":"boolean","description":"true if the contract was issued on behalf of the issuer's corporation","title":"get_corporations_corporation_id_contracts_for_corporation"},"availability":{"type":"string","description":"To whom the contract is available","enum":["public","personal","corporation","alliance"],"title":"get_corporations_corporation_id_contracts_availability"},"date_issued":{"type":"string","format":"date-time","description":"\u0421reation date of the contract","title":"get_corporations_corporation_id_contracts_date_issued"},"date_expired":{"type":"string","format":"date-time","description":"Expiration date of the contract","title":"get_corporations_corporation_id_contracts_date_expired"},"date_accepted":{"type":"string","format":"date-time","description":"Date of confirmation of contract","title":"get_corporations_corporation_id_contracts_date_accepted"},"days_to_complete":{"type":"integer","format":"int32","description":"Number of days to perform the contract","title":"get_corporations_corporation_id_contracts_days_to_complete"},"date_completed":{"type":"string","format":"date-time","description":"Date of completed of contract","title":"get_corporations_corporation_id_contracts_date_completed"},"price":{"type":"number","format":"double","description":"Price of contract (for ItemsExchange and Auctions)","title":"get_corporations_corporation_id_contracts_price"},"reward":{"type":"number","format":"double","description":"Remuneration for contract (for Couriers only)","title":"get_corporations_corporation_id_contracts_reward"},"collateral":{"type":"number","format":"double","description":"Collateral price (for Couriers only)","title":"get_corporations_corporation_id_contracts_collateral"},"buyout":{"type":"number","format":"double","description":"Buyout price (for Auctions only)","title":"get_corporations_corporation_id_contracts_buyout"},"volume":{"type":"number","format":"double","description":"Volume of items in the contract","title":"get_corporations_corporation_id_contracts_volume"}},"title":"get_corporations_corporation_id_contracts_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_contracts_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":[],"security":[{"evesso":["esi-contracts.read_corporation_contracts.v1"]}],"operationId":"get_corporations_corporation_id_contracts","x-cached-seconds":300,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/contracts/{contract_id}/items/":{"get":{"description":"Lists items of a particular contract\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get corporation contract items","tags":["Contracts"],"parameters":[{"name":"contract_id","in":"path","description":"ID of a contract","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of items in this contract","examples":{"application/json":[{"record_id":123456,"type_id":587,"quantity":1,"is_singleton":false,"is_included":true}]},"schema":{"type":"array","maxItems":2000,"items":{"type":"object","required":["record_id","type_id","quantity","is_singleton","is_included"],"properties":{"record_id":{"type":"integer","format":"int64","description":"Unique ID for the item","title":"get_corporations_corporation_id_contracts_contract_id_items_record_id"},"type_id":{"type":"integer","format":"int32","description":"Type ID for item","title":"get_corporations_corporation_id_contracts_contract_id_items_type_id"},"quantity":{"type":"integer","format":"int32","description":"Number of items in the stack","title":"get_corporations_corporation_id_contracts_contract_id_items_quantity"},"raw_quantity":{"type":"integer","format":"int32","description":"-1 indicates that the item is a singleton (non-stackable). If the item happens to be a Blueprint, -1 is an Original and -2 is a Blueprint Copy","title":"get_corporations_corporation_id_contracts_contract_id_items_raw_quantity"},"is_singleton":{"type":"boolean","title":"get_corporations_corporation_id_contracts_contract_id_items_is_singleton","description":"is_singleton boolean"},"is_included":{"type":"boolean","description":"true if the contract issuer has submitted this item with the contract, false if the isser is asking for this item in the contract.","title":"get_corporations_corporation_id_contracts_contract_id_items_is_included"}},"title":"get_corporations_corporation_id_contracts_contract_id_items_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_contracts_contract_id_items_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":[],"security":[{"evesso":["esi-contracts.read_corporation_contracts.v1"]}],"operationId":"get_corporations_corporation_id_contracts_contract_id_items","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/contracts/{contract_id}/bids/":{"get":{"description":"Lists bids on a particular auction contract\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get corporation contract bids","tags":["Contracts"],"parameters":[{"name":"contract_id","in":"path","description":"ID of a contract","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of bids","examples":{"application/json":[{"bid_id":1,"bidder_id":123,"date_bid":"2017-01-01T10:10:10Z","amount":1.23}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["bid_id","bidder_id","date_bid","amount"],"properties":{"bid_id":{"type":"integer","format":"int32","description":"Unique ID for the bid","title":"get_corporations_corporation_id_contracts_contract_id_bids_bid_id"},"bidder_id":{"type":"integer","format":"int32","description":"Character ID of the bidder","title":"get_corporations_corporation_id_contracts_contract_id_bids_bidder_id"},"date_bid":{"type":"string","format":"date-time","description":"Datetime when the bid was placed","title":"get_corporations_corporation_id_contracts_contract_id_bids_date_bid"},"amount":{"type":"number","format":"float","description":"The amount bid, in ISK","title":"get_corporations_corporation_id_contracts_contract_id_bids_amount"}},"title":"get_corporations_corporation_id_contracts_contract_id_bids_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_contracts_contract_id_bids_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":[],"security":[{"evesso":["esi-contracts.read_corporation_contracts.v1"]}],"operationId":"get_corporations_corporation_id_contracts_contract_id_bids","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/shareholders/":{"get":{"description":"Return the current shareholders of a corporation.\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Director","summary":"Get corporation shareholders","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of shareholders","examples":{"application/json":[{"shareholder_id":98000001,"shareholder_type":"corporation","share_count":580},{"shareholder_id":2112000003,"shareholder_type":"character","share_count":20},{"shareholder_id":2112000004,"shareholder_type":"character","share_count":300},{"shareholder_id":2112000001,"shareholder_type":"character","share_count":100}]},"schema":{"type":"array","maxItems":1000,"description":"List of shareholders","items":{"type":"object","required":["shareholder_id","shareholder_type","share_count"],"properties":{"shareholder_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_shareholders_shareholder_id","description":"shareholder_id integer"},"shareholder_type":{"type":"string","enum":["character","corporation"],"title":"get_corporations_corporation_id_shareholders_shareholder_type","description":"shareholder_type string"},"share_count":{"type":"integer","format":"int64","title":"get_corporations_corporation_id_shareholders_share_count","description":"share_count integer"}},"title":"get_corporations_corporation_id_shareholders_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_shareholders_ok"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Director"],"security":[{"evesso":["esi-wallet.read_corporation_wallets.v1"]}],"operationId":"get_corporations_corporation_id_shareholders","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v4/corporations/{corporation_id}/":{"get":{"description":"Public information about a corporation\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get corporation information","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Public information about a corporation","examples":{"application/json":{"name":"C C P","ticker":"-CCP-","member_count":656,"ceo_id":180548812,"alliance_id":434243723,"description":"This is a corporation description, it's basically just a string","tax_rate":0.256,"date_founded":"2004-11-28T16:42:51Z","creator_id":180548812,"url":"http://www.eveonline.com"}},"schema":{"type":"object","required":["name","ticker","member_count","ceo_id","tax_rate","creator_id"],"properties":{"name":{"type":"string","description":"the full name of the corporation","title":"get_corporations_corporation_id_name"},"ticker":{"type":"string","description":"the short name of the corporation","title":"get_corporations_corporation_id_ticker"},"member_count":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_member_count","description":"member_count integer"},"ceo_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_ceo_id","description":"ceo_id integer"},"alliance_id":{"type":"integer","format":"int32","description":"ID of the alliance that corporation is a member of, if any","title":"get_corporations_corporation_id_alliance_id"},"description":{"type":"string","title":"get_corporations_corporation_id_description","description":"description string"},"tax_rate":{"type":"number","format":"float","minimum":0,"maximum":1,"title":"get_corporations_corporation_id_tax_rate","description":"tax_rate number"},"date_founded":{"type":"string","format":"date-time","title":"get_corporations_corporation_id_date_founded","description":"date_founded string"},"creator_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_creator_id","description":"creator_id integer"},"url":{"type":"string","title":"get_corporations_corporation_id_url","description":"url string"},"faction_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_faction_id","description":"faction_id integer"},"home_station_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_home_station_id","description":"home_station_id integer"},"shares":{"type":"integer","format":"int64","title":"get_corporations_corporation_id_shares","description":"shares integer"}},"title":"get_corporations_corporation_id_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"Corporation not found","schema":{"type":"object","title":"get_corporations_corporation_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_corporations_corporation_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_corporations_corporation_id","x-cached-seconds":3600,"x-alternate-versions":["dev","v4"]}},"/v2/corporations/{corporation_id}/alliancehistory/":{"get":{"description":"Get a list of all the alliances a corporation has been a member of\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get alliance history","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Alliance history for the given corporation","examples":{"application/json":[{"record_id":23,"start_date":"2016-10-25T14:46:00Z","alliance_id":99000006,"is_deleted":true},{"record_id":1,"start_date":"2015-07-06T20:56:00Z"}]},"schema":{"type":"array","maxItems":10000,"items":{"type":"object","required":["start_date","record_id"],"properties":{"start_date":{"type":"string","format":"date-time","title":"get_corporations_corporation_id_alliancehistory_start_date","description":"start_date string"},"alliance_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_alliancehistory_alliance_id","description":"alliance_id integer"},"is_deleted":{"type":"boolean","description":"True if the alliance has been closed","title":"get_corporations_corporation_id_alliancehistory_is_deleted"},"record_id":{"type":"integer","format":"int32","description":"An incrementing ID that can be used to canonically establish order of records in cases where dates may be ambiguous","title":"get_corporations_corporation_id_alliancehistory_record_id"}},"title":"get_corporations_corporation_id_alliancehistory_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_alliancehistory_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_corporations_corporation_id_alliancehistory","x-cached-seconds":3600,"x-alternate-versions":["dev","v2"]}},"/v2/corporations/names/":{"get":{"description":"Resolve a set of corporation IDs to corporation names\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get corporation names","tags":["Corporation"],"parameters":[{"name":"corporation_ids","in":"query","description":"A comma separated list of corporation IDs","required":true,"type":"array","minItems":1,"maxItems":100,"items":{"type":"integer","format":"int32"}},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of id/name associations","examples":{"application/json":[{"corporation_id":1000171,"corporation_name":"Republic University"}]},"schema":{"type":"array","maxItems":100,"items":{"type":"object","required":["corporation_id","corporation_name"],"properties":{"corporation_id":{"type":"integer","format":"int32","title":"get_corporations_names_corporation_id","description":"corporation_id integer"},"corporation_name":{"type":"string","title":"get_corporations_names_corporation_name","description":"corporation_name string"}},"title":"get_corporations_names_200_ok","description":"200 ok object"},"title":"get_corporations_names_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_corporations_names","x-cached-seconds":3600,"x-alternate-versions":["dev","v2"]}},"/v3/corporations/{corporation_id}/members/":{"get":{"description":"Return the current member list of a corporation, the token's character need to be a member of the corporation.\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get corporation members","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of member character IDs","examples":{"application/json":[90000001,90000002]},"schema":{"type":"array","maxItems":12601,"description":"A list of character IDs","items":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_members_200_ok","description":"200 ok integer"},"title":"get_corporations_corporation_id_members_ok"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-corporations.read_corporation_membership.v1"]}],"operationId":"get_corporations_corporation_id_members","x-cached-seconds":3600,"x-alternate-versions":["dev","v3"]}},"/v1/corporations/{corporation_id}/roles/":{"get":{"description":"Return the roles of all members if the character has the personnel manager role or any grantable role.\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get corporation member roles","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of member character ID's and roles","examples":{"application/json":[{"character_id":1000171,"roles":["Director","Station_Manager"]}]},"schema":{"type":"array","maxItems":12601,"items":{"type":"object","required":["character_id"],"properties":{"character_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_roles_character_id","description":"character_id integer"},"roles":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_roles_role","description":"role string"},"title":"get_corporations_corporation_id_roles_roles","description":"roles array"},"grantable_roles":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_roles_grantable_role","description":"grantable_role string"},"title":"get_corporations_corporation_id_roles_grantable_roles","description":"grantable_roles array"},"roles_at_hq":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_roles_roles_at_hq","description":"roles_at_hq string"},"title":"get_corporations_corporation_id_roles_roles_at_hq","description":"roles_at_hq array"},"grantable_roles_at_hq":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_roles_grantable_roles_at_hq","description":"grantable_roles_at_hq string"},"title":"get_corporations_corporation_id_roles_grantable_roles_at_hq","description":"grantable_roles_at_hq array"},"roles_at_base":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_roles_roles_at_base","description":"roles_at_base string"},"title":"get_corporations_corporation_id_roles_roles_at_base","description":"roles_at_base array"},"grantable_roles_at_base":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_roles_grantable_roles_at_base","description":"grantable_roles_at_base string"},"title":"get_corporations_corporation_id_roles_grantable_roles_at_base","description":"grantable_roles_at_base array"},"roles_at_other":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_roles_roles_at_other","description":"roles_at_other string"},"title":"get_corporations_corporation_id_roles_roles_at_other","description":"roles_at_other array"},"grantable_roles_at_other":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_roles_grantable_roles_at_other","description":"grantable_roles_at_other string"},"title":"get_corporations_corporation_id_roles_grantable_roles_at_other","description":"grantable_roles_at_other array"}},"title":"get_corporations_corporation_id_roles_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_roles_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-corporations.read_corporation_membership.v1"]}],"operationId":"get_corporations_corporation_id_roles","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/roles/history/":{"get":{"description":"Return how roles have changed for a coporation's members, up to a month\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Director","summary":"Get corporation member roles history","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of role changes","examples":{"application/json":[{"character_id":12345,"changed_at":"2016-10-25T14:46:00Z","issuer_id":45678,"role_type":"roles","old_roles":["Diplomat"],"new_roles":["Station_Manager"]}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["character_id","changed_at","issuer_id","role_type","old_roles","new_roles"],"properties":{"character_id":{"type":"integer","format":"int32","description":"The character whose roles are changed","title":"get_corporations_corporation_id_roles_history_character_id"},"changed_at":{"type":"string","format":"date-time","title":"get_corporations_corporation_id_roles_history_changed_at","description":"changed_at string"},"issuer_id":{"type":"integer","format":"int32","description":"ID of the character who issued this change","title":"get_corporations_corporation_id_roles_history_issuer_id"},"role_type":{"type":"string","enum":["grantable_roles","grantable_roles_at_base","grantable_roles_at_hq","grantable_roles_at_other","roles","roles_at_base","roles_at_hq","roles_at_other"],"title":"get_corporations_corporation_id_roles_history_role_type","description":"role_type string"},"old_roles":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_roles_history_old_role","description":"old_role string"},"title":"get_corporations_corporation_id_roles_history_old_roles","description":"old_roles array"},"new_roles":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_roles_history_new_role","description":"new_role string"},"title":"get_corporations_corporation_id_roles_history_new_roles","description":"new_roles array"}},"title":"get_corporations_corporation_id_roles_history_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_roles_history_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Director"],"security":[{"evesso":["esi-corporations.read_corporation_membership.v1"]}],"operationId":"get_corporations_corporation_id_roles_history","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/icons/":{"get":{"description":"Get the icon urls for a corporation\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get corporation icon","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Urls for icons for the given corporation id and server","examples":{"application/json":{"px64x64":"https://imageserver.eveonline.com/Corporation/1000010_64.png","px128x128":"https://imageserver.eveonline.com/Corporation/1000010_128.png","px256x256":"https://imageserver.eveonline.com/Corporation/1000010_256.png"}},"schema":{"type":"object","properties":{"px64x64":{"type":"string","title":"get_corporations_corporation_id_icons_px64x64","description":"px64x64 string"},"px128x128":{"type":"string","title":"get_corporations_corporation_id_icons_px128x128","description":"px128x128 string"},"px256x256":{"type":"string","title":"get_corporations_corporation_id_icons_px256x256","description":"px256x256 string"}},"title":"get_corporations_corporation_id_icons_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"No image server for this datasource","examples":{"application/json":{"error":"No image server for this datasource"}},"schema":{"type":"object","description":"No image server for this datasource","properties":{"error":{"type":"string","description":"error message","title":"get_corporations_corporation_id_icons_error"}},"title":"get_corporations_corporation_id_icons_not_found"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_corporations_corporation_id_icons","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/npccorps/":{"get":{"description":"Get a list of npc corporations\n\n---\n\nThis route expires daily at 11:05","summary":"Get npc corporations","tags":["Corporation"],"responses":{"200":{"description":"A list of npc corporation ids","examples":{"application/json":[1000001,1000002,1000003]},"schema":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int32","title":"get_corporations_npccorps_200_ok","description":"200 ok integer"},"title":"get_corporations_npccorps_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_corporations_npccorps","x-alternate-versions":["dev","legacy","v1"]}},"/v2/corporations/{corporation_id}/structures/":{"get":{"description":"Get a list of corporation structures. This route's version includes the changes to structures detailed in this blog: https://www.eveonline.com/article/upwell-2.0-structures-changes-coming-on-february-13th\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): StationManager","summary":"Get corporation structures","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of corporation structures' information","examples":{"application/json":[{"structure_id":1021975535893,"type_id":35833,"corporation_id":667531913,"system_id":30004763,"profile_id":11237,"state":"shield_vulnerable","reinforce_weekday":2,"reinforce_hour":22}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["structure_id","type_id","corporation_id","system_id","profile_id","reinforce_weekday","reinforce_hour","state"],"properties":{"structure_id":{"type":"integer","format":"int64","description":"The Item ID of the structure","title":"get_corporations_corporation_id_structures_structure_id"},"type_id":{"type":"integer","format":"int32","description":"The type id of the structure","title":"get_corporations_corporation_id_structures_type_id"},"corporation_id":{"type":"integer","format":"int32","description":"ID of the corporation that owns the structure","title":"get_corporations_corporation_id_structures_corporation_id"},"system_id":{"type":"integer","format":"int32","description":"The solar system the structure is in","title":"get_corporations_corporation_id_structures_system_id"},"profile_id":{"type":"integer","format":"int32","description":"The id of the ACL profile for this citadel","title":"get_corporations_corporation_id_structures_profile_id"},"fuel_expires":{"type":"string","format":"date-time","description":"Date on which the structure will run out of fuel","title":"get_corporations_corporation_id_structures_fuel_expires"},"services":{"type":"array","description":"Contains a list of service upgrades, and their state","maxItems":10,"items":{"type":"object","required":["name","state"],"properties":{"name":{"type":"string","title":"get_corporations_corporation_id_structures_name","description":"name string"},"state":{"type":"string","enum":["online","offline","cleanup"],"title":"get_corporations_corporation_id_structures_state","description":"state string"}},"title":"get_corporations_corporation_id_structures_service","description":"service object"},"title":"get_corporations_corporation_id_structures_services"},"state_timer_start":{"type":"string","format":"date-time","description":"Date at which the structure entered it's current state","title":"get_corporations_corporation_id_structures_state_timer_start"},"state_timer_end":{"type":"string","format":"date-time","description":"Date at which the structure will move to it's next state","title":"get_corporations_corporation_id_structures_state_timer_end"},"unanchors_at":{"type":"string","format":"date-time","description":"Date at which the structure will unanchor","title":"get_corporations_corporation_id_structures_unanchors_at"},"state":{"type":"string","enum":["anchor_vulnerable","anchoring","armor_reinforce","armor_vulnerable","fitting_invulnerable","hull_reinforce","hull_vulnerable","online_deprecated","onlining_vulnerable","shield_vulnerable","unanchored","unknown"],"title":"get_corporations_corporation_id_structures_state","description":"state string"},"reinforce_weekday":{"description":"The day of the week when the structure exits its final reinforcement period and becomes vulnerable to attack against its hull. Monday is 0 and Sunday is 6.","type":"integer","format":"int32","minimum":0,"maximum":6,"title":"get_corporations_corporation_id_structures_reinforce_weekday"},"reinforce_hour":{"description":"The hour of day that determines the four hour window when the structure will randomly exit its reinforcement periods and become vulnerable to attack against its armor and/or hull. The structure will become vulnerable at a random time that is +/- 2 hours centered on the value of this property.","type":"integer","format":"int32","minimum":0,"maximum":23,"title":"get_corporations_corporation_id_structures_reinforce_hour"},"next_reinforce_weekday":{"description":"The requested change to reinforce_weekday that will take effect at the time shown by next_reinforce_apply.","type":"integer","format":"int32","minimum":0,"maximum":6,"title":"get_corporations_corporation_id_structures_next_reinforce_weekday"},"next_reinforce_hour":{"description":"The requested change to reinforce_hour that will take effect at the time shown by next_reinforce_apply.","type":"integer","format":"int32","minimum":0,"maximum":23,"title":"get_corporations_corporation_id_structures_next_reinforce_hour"},"next_reinforce_apply":{"description":"The date and time when the structure's newly requested reinforcement times (e.g. next_reinforce_hour and next_reinforce_day) will take effect.","type":"string","format":"date-time","title":"get_corporations_corporation_id_structures_next_reinforce_apply"}},"title":"get_corporations_corporation_id_structures_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_structures_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Content-Language":{"description":"The language used in the response","type":"string","enum":["de","en-us","fr","ja","ru","zh"]},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["StationManager"],"security":[{"evesso":["esi-corporations.read_structures.v1"]}],"operationId":"get_corporations_corporation_id_structures","x-cached-seconds":3600,"x-alternate-versions":["dev","v2"]}},"/v1/corporations/{corporation_id}/membertracking/":{"get":{"description":"Returns additional information about a corporation's members which helps tracking their activities\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Director","summary":"Track corporation members","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of member character IDs","examples":{"application/json":[{"character_id":2112000001,"start_date":"2017-07-10T14:46:00Z","logon_date":"2017-08-03T14:22:03Z","logoff_date":"2017-08-03T14:31:16Z","location_id":30003657,"ship_type_id":22464},{"character_id":2112000002,"start_date":"2017-07-10T14:50:00Z","logon_date":"2017-07-25T10:54:00Z","logoff_date":"2017-07-25T11:07:40Z","location_id":30003657,"ship_type_id":670}]},"schema":{"type":"array","maxItems":12601,"items":{"type":"object","required":["character_id"],"properties":{"character_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_membertracking_character_id","description":"character_id integer"},"start_date":{"type":"string","format":"date-time","title":"get_corporations_corporation_id_membertracking_start_date","description":"start_date string"},"base_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_membertracking_base_id","description":"base_id integer"},"logon_date":{"type":"string","format":"date-time","title":"get_corporations_corporation_id_membertracking_logon_date","description":"logon_date string"},"logoff_date":{"type":"string","format":"date-time","title":"get_corporations_corporation_id_membertracking_logoff_date","description":"logoff_date string"},"location_id":{"type":"integer","format":"int64","title":"get_corporations_corporation_id_membertracking_location_id","description":"location_id integer"},"ship_type_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_membertracking_ship_type_id","description":"ship_type_id integer"}},"title":"get_corporations_corporation_id_membertracking_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_membertracking_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Director"],"security":[{"evesso":["esi-corporations.track_members.v1"]}],"operationId":"get_corporations_corporation_id_membertracking","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/divisions/":{"get":{"description":"Return corporation hangar and wallet division names, only show if a division is not using the default name\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Director","summary":"Get corporation divisions","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of corporation division names","examples":{"application/json":{"hangar":[{"division":1,"name":"Awesome Hangar 1"}],"wallet":[{"division":1,"name":"Rich Wallet 1"}]}},"schema":{"type":"object","properties":{"hangar":{"type":"array","maxItems":7,"items":{"type":"object","properties":{"division":{"type":"integer","format":"int32","minimum":1,"maximum":7,"title":"get_corporations_corporation_id_divisions_division","description":"division integer"},"name":{"type":"string","maxLength":50,"title":"get_corporations_corporation_id_divisions_name","description":"name string"}},"title":"get_corporations_corporation_id_divisions_hangar","description":"hangar object"},"title":"get_corporations_corporation_id_divisions_hangar","description":"hangar array"},"wallet":{"type":"array","maxItems":7,"items":{"type":"object","properties":{"division":{"type":"integer","format":"int32","minimum":1,"maximum":7,"title":"get_corporations_corporation_id_divisions_division","description":"division integer"},"name":{"type":"string","maxLength":50,"title":"get_corporations_corporation_id_divisions_name","description":"name string"}},"title":"get_corporations_corporation_id_divisions_wallet","description":"wallet object"},"title":"get_corporations_corporation_id_divisions_wallet","description":"wallet array"}},"title":"get_corporations_corporation_id_divisions_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Director"],"security":[{"evesso":["esi-corporations.read_divisions.v1"]}],"operationId":"get_corporations_corporation_id_divisions","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/members/limit/":{"get":{"description":"Return a corporation's member limit, not including CEO himself\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Director","summary":"Get corporation member limit","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"The corporation's member limit","examples":{"application/json":40},"schema":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_members_limit_ok","description":"200 ok integer"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Director"],"security":[{"evesso":["esi-corporations.track_members.v1"]}],"operationId":"get_corporations_corporation_id_members_limit","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/titles/":{"get":{"description":"Returns a corporation's titles\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Director","summary":"Get corporation titles","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of titles","examples":{"application/json":[{"title_id":1,"name":"Awesome Title","roles":["Hangar_Take_6","Hangar_Query_2"]}]},"schema":{"type":"array","maxItems":16,"items":{"type":"object","properties":{"title_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_titles_title_id","description":"title_id integer"},"name":{"type":"string","title":"get_corporations_corporation_id_titles_name","description":"name string"},"roles":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_titles_role","description":"role string"},"title":"get_corporations_corporation_id_titles_roles","description":"roles array"},"grantable_roles":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_titles_grantable_role","description":"grantable_role string"},"title":"get_corporations_corporation_id_titles_grantable_roles","description":"grantable_roles array"},"roles_at_hq":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_titles_roles_at_hq","description":"roles_at_hq string"},"title":"get_corporations_corporation_id_titles_roles_at_hq","description":"roles_at_hq array"},"grantable_roles_at_hq":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_titles_grantable_roles_at_hq","description":"grantable_roles_at_hq string"},"title":"get_corporations_corporation_id_titles_grantable_roles_at_hq","description":"grantable_roles_at_hq array"},"roles_at_base":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_titles_roles_at_base","description":"roles_at_base string"},"title":"get_corporations_corporation_id_titles_roles_at_base","description":"roles_at_base array"},"grantable_roles_at_base":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_titles_grantable_roles_at_base","description":"grantable_roles_at_base string"},"title":"get_corporations_corporation_id_titles_grantable_roles_at_base","description":"grantable_roles_at_base array"},"roles_at_other":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_titles_roles_at_other","description":"roles_at_other string"},"title":"get_corporations_corporation_id_titles_roles_at_other","description":"roles_at_other array"},"grantable_roles_at_other":{"type":"array","maxItems":50,"items":{"type":"string","uniqueItems":true,"enum":["Account_Take_1","Account_Take_2","Account_Take_3","Account_Take_4","Account_Take_5","Account_Take_6","Account_Take_7","Accountant","Auditor","Communications_Officer","Config_Equipment","Config_Starbase_Equipment","Container_Take_1","Container_Take_2","Container_Take_3","Container_Take_4","Container_Take_5","Container_Take_6","Container_Take_7","Contract_Manager","Diplomat","Director","Factory_Manager","Fitting_Manager","Hangar_Query_1","Hangar_Query_2","Hangar_Query_3","Hangar_Query_4","Hangar_Query_5","Hangar_Query_6","Hangar_Query_7","Hangar_Take_1","Hangar_Take_2","Hangar_Take_3","Hangar_Take_4","Hangar_Take_5","Hangar_Take_6","Hangar_Take_7","Junior_Accountant","Personnel_Manager","Rent_Factory_Facility","Rent_Office","Rent_Research_Facility","Security_Officer","Starbase_Defense_Operator","Starbase_Fuel_Technician","Station_Manager","Terrestrial_Combat_Officer","Terrestrial_Logistics_Officer","Trader"],"title":"get_corporations_corporation_id_titles_grantable_roles_at_other","description":"grantable_roles_at_other string"},"title":"get_corporations_corporation_id_titles_grantable_roles_at_other","description":"grantable_roles_at_other array"}},"title":"get_corporations_corporation_id_titles_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_titles_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Director"],"security":[{"evesso":["esi-corporations.read_titles.v1"]}],"operationId":"get_corporations_corporation_id_titles","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/members/titles/":{"get":{"description":"Returns a corporation's members' titles\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Director","summary":"Get corporation's members' titles","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of members and theirs titles","examples":{"application/json":[{"character_id":12345,"titles":[]}]},"schema":{"type":"array","maxItems":12601,"items":{"type":"object","required":["character_id","titles"],"properties":{"character_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_members_titles_character_id","description":"character_id integer"},"titles":{"type":"array","maxItems":16,"description":"A list of title_id","items":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_members_titles_title","description":"title integer"},"title":"get_corporations_corporation_id_members_titles_titles"}},"title":"get_corporations_corporation_id_members_titles_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_members_titles_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Director"],"security":[{"evesso":["esi-corporations.read_titles.v1"]}],"operationId":"get_corporations_corporation_id_members_titles","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/blueprints/":{"get":{"description":"Returns a list of blueprints the corporation owns\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Director\n\n---\n[This route has an available update](https://esi.tech.ccp.is/diff/latest/dev/#GET-/corporations/{corporation_id}/blueprints/)","summary":"Get corporation blueprints","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of corporation blueprints","examples":{"application/json":[{"item_id":1000000010495,"type_id":691,"location_id":60014719,"location_flag":"CorpSAG1","quantity":1,"time_efficiency":0,"material_efficiency":0,"runs":-1}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["item_id","type_id","location_id","location_flag","quantity","time_efficiency","material_efficiency","runs"],"properties":{"item_id":{"type":"integer","format":"int64","description":"Unique ID for this item.","title":"get_corporations_corporation_id_blueprints_item_id"},"type_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_blueprints_type_id","description":"type_id integer"},"location_id":{"type":"integer","format":"int64","description":"References a solar system, station or item_id if this blueprint is located within a container.","title":"get_corporations_corporation_id_blueprints_location_id"},"quantity":{"type":"integer","format":"int32","description":"A range of numbers with a minimum of -2 and no maximum value where -1 is an original and -2 is a copy. It can be a positive integer if it is a stack of blueprint originals fresh from the market (e.g. no activities performed on them yet).","minimum":-2,"title":"get_corporations_corporation_id_blueprints_quantity"},"time_efficiency":{"type":"integer","format":"int32","description":"Time Efficiency Level of the blueprint.","minimum":0,"maximum":20,"title":"get_corporations_corporation_id_blueprints_time_efficiency"},"material_efficiency":{"type":"integer","format":"int32","description":"Material Efficiency Level of the blueprint.","minimum":0,"maximum":25,"title":"get_corporations_corporation_id_blueprints_material_efficiency"},"runs":{"type":"integer","format":"int32","description":"Number of runs remaining if the blueprint is a copy, -1 if it is an original.","minimum":-1,"title":"get_corporations_corporation_id_blueprints_runs"},"location_flag":{"type":"string","description":"Type of the location_id","enum":["AssetSafety","AutoFit","Bonus","Booster","BoosterBay","Capsule","Cargo","CorpDeliveries","CorpSAG1","CorpSAG2","CorpSAG3","CorpSAG4","CorpSAG5","CorpSAG6","CorpSAG7","CrateLoot","Deliveries","DroneBay","DustBattle","DustDatabank","FighterBay","FighterTube0","FighterTube1","FighterTube2","FighterTube3","FighterTube4","FleetHangar","Hangar","HangarAll","HiSlot0","HiSlot1","HiSlot2","HiSlot3","HiSlot4","HiSlot5","HiSlot6","HiSlot7","HiddenModifers","Implant","Impounded","JunkyardReprocessed","JunkyardTrashed","LoSlot0","LoSlot1","LoSlot2","LoSlot3","LoSlot4","LoSlot5","LoSlot6","LoSlot7","Locked","MedSlot0","MedSlot1","MedSlot2","MedSlot3","MedSlot4","MedSlot5","MedSlot6","MedSlot7","OfficeFolder","Pilot","PlanetSurface","QuafeBay","Reward","RigSlot0","RigSlot1","RigSlot2","RigSlot3","RigSlot4","RigSlot5","RigSlot6","RigSlot7","SecondaryStorage","ServiceSlot0","ServiceSlot1","ServiceSlot2","ServiceSlot3","ServiceSlot4","ServiceSlot5","ServiceSlot6","ServiceSlot7","ShipHangar","ShipOffline","Skill","SkillInTraining","SpecializedAmmoHold","SpecializedCommandCenterHold","SpecializedFuelBay","SpecializedGasHold","SpecializedIndustrialShipHold","SpecializedLargeShipHold","SpecializedMaterialBay","SpecializedMediumShipHold","SpecializedMineralHold","SpecializedOreHold","SpecializedPlanetaryCommoditiesHold","SpecializedSalvageHold","SpecializedShipHold","SpecializedSmallShipHold","StructureActive","StructureFuel","StructureInactive","StructureOffline","SubSystemSlot0","SubSystemSlot1","SubSystemSlot2","SubSystemSlot3","SubSystemSlot4","SubSystemSlot5","SubSystemSlot6","SubSystemSlot7","SubsystemBay","Unlocked","Wallet","Wardrobe"],"title":"get_corporations_corporation_id_blueprints_location_flag"}},"title":"get_corporations_corporation_id_blueprints_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_blueprints_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Director"],"security":[{"evesso":["esi-corporations.read_blueprints.v1"]}],"operationId":"get_corporations_corporation_id_blueprints","x-cached-seconds":3600,"x-alternate-versions":["legacy","v1"]}},"/v1/corporations/{corporation_id}/standings/":{"get":{"description":"Return corporation standings from agents, NPC corporations, and factions\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get corporation standings","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of standings","examples":{"application/json":[{"from_id":3009841,"from_type":"agent","standing":0.1},{"from_id":1000061,"from_type":"npc_corp","standing":0},{"from_id":500003,"from_type":"faction","standing":-1}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["from_id","from_type","standing"],"properties":{"from_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_standings_from_id","description":"from_id integer"},"from_type":{"type":"string","enum":["agent","npc_corp","faction"],"title":"get_corporations_corporation_id_standings_from_type","description":"from_type string"},"standing":{"type":"number","format":"float","minimum":-10,"maximum":10,"title":"get_corporations_corporation_id_standings_standing","description":"standing number"}},"title":"get_corporations_corporation_id_standings_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_standings_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":[],"security":[{"evesso":["esi-corporations.read_standings.v1"]}],"operationId":"get_corporations_corporation_id_standings","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/starbases/":{"get":{"description":"Returns list of corporation starbases (POSes)\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Director","summary":"Get corporation starbases (POSes)","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of starbases (POSes)","examples":{"application/json":[{"starbase_id":12345,"type_id":456,"system_id":123456}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["starbase_id","type_id","system_id"],"properties":{"starbase_id":{"type":"integer","format":"int64","description":"Unique ID for this starbase (POS)","title":"get_corporations_corporation_id_starbases_starbase_id"},"type_id":{"type":"integer","format":"int32","description":"Starbase (POS) type","title":"get_corporations_corporation_id_starbases_type_id"},"system_id":{"type":"integer","format":"int32","description":"The solar system this starbase (POS) is in, unanchored POSes have this information","title":"get_corporations_corporation_id_starbases_system_id"},"moon_id":{"type":"integer","format":"int32","description":"The moon this starbase (POS) is anchored on, unanchored POSes do not have this information","title":"get_corporations_corporation_id_starbases_moon_id"},"state":{"type":"string","enum":["offline","online","onlining","reinforced","unanchoring"],"title":"get_corporations_corporation_id_starbases_state","description":"state string"},"unanchor_at":{"type":"string","format":"date-time","description":"When the POS started unanchoring, for starbases (POSes) in unanchoring state","title":"get_corporations_corporation_id_starbases_unanchor_at"},"reinforced_until":{"type":"string","format":"date-time","description":"When the POS will be out of reinforcement, for starbases (POSes) in reinforced state","title":"get_corporations_corporation_id_starbases_reinforced_until"},"onlined_since":{"type":"string","format":"date-time","description":"When the POS onlined, for starbases (POSes) in online state","title":"get_corporations_corporation_id_starbases_onlined_since"}},"title":"get_corporations_corporation_id_starbases_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_starbases_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Director"],"security":[{"evesso":["esi-corporations.read_starbases.v1"]}],"operationId":"get_corporations_corporation_id_starbases","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/starbases/{starbase_id}/":{"get":{"description":"Returns various settings and fuels of a starbase (POS)\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Director","summary":"Get starbase (POS) detail","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"name":"starbase_id","in":"path","description":"An EVE starbase (POS) ID","required":true,"type":"integer","format":"int64"},{"name":"system_id","in":"query","description":"The solar system this starbase (POS) is located in,","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of starbases (POSes)","examples":{"application/json":{"fuel_bay_view":"config_starbase_equipment_role","fuel_bay_take":"config_starbase_equipment_role","anchor":"config_starbase_equipment_role","unanchor":"config_starbase_equipment_role","online":"config_starbase_equipment_role","offline":"config_starbase_equipment_role","allow_corporation_members":true,"allow_alliance_members":false,"use_alliance_standings":false,"attack_if_other_security_status_dropping":false,"attack_if_at_war":true}},"schema":{"type":"object","required":["fuel_bay_view","fuel_bay_take","anchor","unanchor","online","offline","allow_corporation_members","allow_alliance_members","use_alliance_standings","attack_if_other_security_status_dropping","attack_if_at_war"],"properties":{"fuel_bay_view":{"type":"string","description":"Who can view the starbase (POS)'s fule bay. Characters either need to have required role or belong to the starbase (POS) owner's corporation or alliance, as described by the enum, all other access settings follows the same scheme","enum":["alliance_member","config_starbase_equipment_role","corporation_member","starbase_fuel_technician_role"],"title":"get_corporations_corporation_id_starbases_starbase_id_fuel_bay_view"},"fuel_bay_take":{"type":"string","description":"Who can take fuel blocks out of the starbase (POS)'s fuel bay","enum":["alliance_member","config_starbase_equipment_role","corporation_member","starbase_fuel_technician_role"],"title":"get_corporations_corporation_id_starbases_starbase_id_fuel_bay_take"},"anchor":{"type":"string","description":"Who can anchor starbase (POS) and its structures","enum":["alliance_member","config_starbase_equipment_role","corporation_member","starbase_fuel_technician_role"],"title":"get_corporations_corporation_id_starbases_starbase_id_anchor"},"unanchor":{"type":"string","description":"Who can unanchor starbase (POS) and its structures","enum":["alliance_member","config_starbase_equipment_role","corporation_member","starbase_fuel_technician_role"],"title":"get_corporations_corporation_id_starbases_starbase_id_unanchor"},"online":{"type":"string","description":"Who can online starbase (POS) and its structures","enum":["alliance_member","config_starbase_equipment_role","corporation_member","starbase_fuel_technician_role"],"title":"get_corporations_corporation_id_starbases_starbase_id_online"},"offline":{"type":"string","description":"Who can offline starbase (POS) and its structures","enum":["alliance_member","config_starbase_equipment_role","corporation_member","starbase_fuel_technician_role"],"title":"get_corporations_corporation_id_starbases_starbase_id_offline"},"allow_corporation_members":{"type":"boolean","title":"get_corporations_corporation_id_starbases_starbase_id_allow_corporation_members","description":"allow_corporation_members boolean"},"allow_alliance_members":{"type":"boolean","title":"get_corporations_corporation_id_starbases_starbase_id_allow_alliance_members","description":"allow_alliance_members boolean"},"use_alliance_standings":{"type":"boolean","description":"True if the starbase (POS) is using alliance standings, otherwise using corporation's","title":"get_corporations_corporation_id_starbases_starbase_id_use_alliance_standings"},"attack_standing_threshold":{"type":"number","format":"float","description":"Starbase (POS) will attack if target's standing is lower than this value","title":"get_corporations_corporation_id_starbases_starbase_id_attack_standing_threshold"},"attack_security_status_threshold":{"type":"number","format":"float","description":"Starbase (POS) will attack if target's security standing is lower than this value","title":"get_corporations_corporation_id_starbases_starbase_id_attack_security_status_threshold"},"attack_if_other_security_status_dropping":{"type":"boolean","title":"get_corporations_corporation_id_starbases_starbase_id_attack_if_other_security_status_dropping","description":"attack_if_other_security_status_dropping boolean"},"attack_if_at_war":{"type":"boolean","title":"get_corporations_corporation_id_starbases_starbase_id_attack_if_at_war","description":"attack_if_at_war boolean"},"fuels":{"type":"array","maxItems":20,"description":"Fuel blocks and other things that will be consumed when operating a starbase (POS)","items":{"type":"object","required":["type_id","quantity"],"properties":{"type_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_starbases_starbase_id_type_id","description":"type_id integer"},"quantity":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_starbases_starbase_id_quantity","description":"quantity integer"}},"title":"get_corporations_corporation_id_starbases_starbase_id_fuel","description":"fuel object"},"title":"get_corporations_corporation_id_starbases_starbase_id_fuels"}},"title":"get_corporations_corporation_id_starbases_starbase_id_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Director"],"security":[{"evesso":["esi-corporations.read_starbases.v1"]}],"operationId":"get_corporations_corporation_id_starbases_starbase_id","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/containers/logs/":{"get":{"description":"Returns logs recorded in the past seven days from all audit log secure containers (ALSC) owned by a given corporation\n\n---\n\nThis route is cached for up to 600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Director\n\n---\n[This route has an available update](https://esi.tech.ccp.is/diff/latest/dev/#GET-/corporations/{corporation_id}/containers/logs/)","summary":"Get all corporation ALSC logs","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of corporation ALSC logs","examples":{"application/json":[{"logged_at":"2017-10-10T14:00:00Z","container_id":1000000012279,"container_type_id":17365,"character_id":2112625428,"location_id":1000000012278,"action":"set_password","location_flag":"CorpSAG1","password_type":"general"},{"logged_at":"2017-10-11T12:04:33Z","container_id":1000000012279,"container_type_id":17365,"character_id":2112625428,"location_id":1000000012278,"action":"lock","location_flag":"CorpSAG1","type_id":1230,"quantity":30},{"logged_at":"2017-10-11T12:06:29Z","container_id":1000000012279,"container_type_id":17365,"character_id":2112625428,"location_id":1000000012278,"action":"configure","location_flag":"CorpSAG2","old_config_bitmask":23,"new_config_bitmask":31}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["logged_at","container_id","container_type_id","character_id","location_id","action","location_flag"],"properties":{"logged_at":{"type":"string","format":"date-time","description":"Timestamp when this log was created","title":"get_corporations_corporation_id_containers_logs_logged_at"},"container_id":{"type":"integer","format":"int64","description":"ID of the container","title":"get_corporations_corporation_id_containers_logs_container_id"},"container_type_id":{"type":"integer","format":"int32","description":"Type ID of the container","title":"get_corporations_corporation_id_containers_logs_container_type_id"},"character_id":{"type":"integer","format":"int32","description":"ID of the character who performed the action.","title":"get_corporations_corporation_id_containers_logs_character_id"},"location_id":{"type":"integer","format":"int64","title":"get_corporations_corporation_id_containers_logs_location_id","description":"location_id integer"},"action":{"type":"string","enum":["add","assemble","configure","enter_password","lock","move","repackage","set_name","set_password","unlock"],"title":"get_corporations_corporation_id_containers_logs_action","description":"action string"},"password_type":{"type":"string","enum":["config","general"],"description":"Type of password set if action is of type SetPassword or EnterPassword","title":"get_corporations_corporation_id_containers_logs_password_type"},"type_id":{"type":"integer","format":"int32","description":"Type ID of the item being acted upon","title":"get_corporations_corporation_id_containers_logs_type_id"},"quantity":{"type":"integer","format":"int32","description":"Quantity of the item being acted upon","title":"get_corporations_corporation_id_containers_logs_quantity"},"old_config_bitmask":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_containers_logs_old_config_bitmask","description":"old_config_bitmask integer"},"new_config_bitmask":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_containers_logs_new_config_bitmask","description":"new_config_bitmask integer"},"location_flag":{"type":"string","enum":["AssetSafety","AutoFit","Bonus","Booster","BoosterBay","Capsule","Cargo","CorpDeliveries","CorpSAG1","CorpSAG2","CorpSAG3","CorpSAG4","CorpSAG5","CorpSAG6","CorpSAG7","CrateLoot","Deliveries","DroneBay","DustBattle","DustDatabank","FighterBay","FighterTube0","FighterTube1","FighterTube2","FighterTube3","FighterTube4","FleetHangar","Hangar","HangarAll","HiSlot0","HiSlot1","HiSlot2","HiSlot3","HiSlot4","HiSlot5","HiSlot6","HiSlot7","HiddenModifers","Implant","Impounded","JunkyardReprocessed","JunkyardTrashed","LoSlot0","LoSlot1","LoSlot2","LoSlot3","LoSlot4","LoSlot5","LoSlot6","LoSlot7","Locked","MedSlot0","MedSlot1","MedSlot2","MedSlot3","MedSlot4","MedSlot5","MedSlot6","MedSlot7","OfficeFolder","Pilot","PlanetSurface","QuafeBay","Reward","RigSlot0","RigSlot1","RigSlot2","RigSlot3","RigSlot4","RigSlot5","RigSlot6","RigSlot7","SecondaryStorage","ServiceSlot0","ServiceSlot1","ServiceSlot2","ServiceSlot3","ServiceSlot4","ServiceSlot5","ServiceSlot6","ServiceSlot7","ShipHangar","ShipOffline","Skill","SkillInTraining","SpecializedAmmoHold","SpecializedCommandCenterHold","SpecializedFuelBay","SpecializedGasHold","SpecializedIndustrialShipHold","SpecializedLargeShipHold","SpecializedMaterialBay","SpecializedMediumShipHold","SpecializedMineralHold","SpecializedOreHold","SpecializedPlanetaryCommoditiesHold","SpecializedSalvageHold","SpecializedShipHold","SpecializedSmallShipHold","StructureActive","StructureFuel","StructureInactive","StructureOffline","SubSystemSlot0","SubSystemSlot1","SubSystemSlot2","SubSystemSlot3","SubSystemSlot4","SubSystemSlot5","SubSystemSlot6","SubSystemSlot7","SubsystemBay","Unlocked","Wallet","Wardrobe"],"title":"get_corporations_corporation_id_containers_logs_location_flag","description":"location_flag string"}},"title":"get_corporations_corporation_id_containers_logs_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_containers_logs_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Director"],"security":[{"evesso":["esi-corporations.read_container_logs.v1"]}],"operationId":"get_corporations_corporation_id_containers_logs","x-cached-seconds":600,"x-alternate-versions":["legacy","v1"]}},"/v1/corporations/{corporation_id}/facilities/":{"get":{"description":"Return a corporation's facilities\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Factory_Manager","summary":"Get corporation facilities","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of corporation facilities","examples":{"application/json":[{"facility_id":123,"type_id":2502,"system_id":45678}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["facility_id","type_id","system_id"],"properties":{"facility_id":{"type":"integer","format":"int64","title":"get_corporations_corporation_id_facilities_facility_id","description":"facility_id integer"},"type_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_facilities_type_id","description":"type_id integer"},"system_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_facilities_system_id","description":"system_id integer"}},"title":"get_corporations_corporation_id_facilities_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_facilities_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Factory_Manager"],"security":[{"evesso":["esi-corporations.read_facilities.v1"]}],"operationId":"get_corporations_corporation_id_facilities","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/medals/":{"get":{"description":"Returns a corporation's medals\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get corporation medals","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of medals","examples":{"application/json":[{"medal_id":123,"title":"Awesome Medal","description":"An Awesome Medal","creator_id":46578,"created_at":"2017-10-10T14:00:00Z"}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["medal_id","title","description","creator_id","created_at"],"properties":{"medal_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_medals_medal_id","description":"medal_id integer"},"title":{"type":"string","maxLength":100,"title":"get_corporations_corporation_id_medals_title","description":"title string"},"description":{"type":"string","maxLength":1000,"title":"get_corporations_corporation_id_medals_description","description":"description string"},"creator_id":{"type":"integer","format":"int32","description":"ID of the character who created this medal","title":"get_corporations_corporation_id_medals_creator_id"},"created_at":{"type":"string","format":"date-time","title":"get_corporations_corporation_id_medals_created_at","description":"created_at string"}},"title":"get_corporations_corporation_id_medals_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_medals_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":[],"security":[{"evesso":["esi-corporations.read_medals.v1"]}],"operationId":"get_corporations_corporation_id_medals","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/medals/issued/":{"get":{"description":"Returns medals issued by a corporation\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Director","summary":"Get corporation issued medals","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of issued medals","examples":{"application/json":[{"medal_id":123,"character_id":45678,"reason":"Awesome Reason","status":"private","issuer_id":67890,"issued_at":"2017-10-10T14:00:00Z"}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["medal_id","character_id","reason","status","issuer_id","issued_at"],"properties":{"medal_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_medals_issued_medal_id","description":"medal_id integer"},"character_id":{"type":"integer","format":"int32","description":"ID of the character who was rewarded this medal","title":"get_corporations_corporation_id_medals_issued_character_id"},"reason":{"type":"string","maxLength":1000,"title":"get_corporations_corporation_id_medals_issued_reason","description":"reason string"},"status":{"type":"string","enum":["private","public"],"title":"get_corporations_corporation_id_medals_issued_status","description":"status string"},"issuer_id":{"type":"integer","format":"int32","description":"ID of the character who issued the medal","title":"get_corporations_corporation_id_medals_issued_issuer_id"},"issued_at":{"type":"string","format":"date-time","title":"get_corporations_corporation_id_medals_issued_issued_at","description":"issued_at string"}},"title":"get_corporations_corporation_id_medals_issued_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_medals_issued_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Director"],"security":[{"evesso":["esi-corporations.read_medals.v1"]}],"operationId":"get_corporations_corporation_id_medals_issued","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/outposts/":{"get":{"description":"Get a list of corporation outpost IDs Note: This endpoint will be removed once outposts are migrated to Citadels as talked about in this blog: https://community.eveonline.com/news/dev-blogs/the-next-steps-in-structure-transition/\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Director","summary":"Get corporation outposts","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of corporation outpost IDs","examples":{"application/json":[61001146,61001147,61001148]},"schema":{"type":"array","maxItems":1000,"uniqueItems":true,"items":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_outposts_200_ok","description":"200 ok integer"},"title":"get_corporations_corporation_id_outposts_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Director"],"security":[{"evesso":["esi-corporations.read_outposts.v1"]}],"operationId":"get_corporations_corporation_id_outposts","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/outposts/{outpost_id}/":{"get":{"description":"Get details about a given outpost. Note: This endpoint will be removed once outposts are migrated to Citadels as talked about in this blog: https://community.eveonline.com/news/dev-blogs/the-next-steps-in-structure-transition/\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Director","summary":"Get corporation outpost details","tags":["Corporation"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"name":"outpost_id","in":"path","description":"A station (outpost) ID","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Details about the given outpost","examples":{"application/json":{"owner_id":98000002,"system_id":30000657,"docking_cost_per_ship_volume":0,"office_rental_cost":100,"type_id":21644,"reprocessing_efficiency":0.5,"reprocessing_station_take":0.01,"standing_owner_id":99003581,"coordinates":{"x":-102478848000,"y":-18310963200,"z":-9660456960},"services":[{"service_name":"Reprocessing Plant","owner_id":98000002,"minimum_standing":0,"surcharge_per_bad_standing":0,"discount_per_good_standing":10}]}},"schema":{"type":"object","required":["owner_id","system_id","docking_cost_per_ship_volume","office_rental_cost","type_id","reprocessing_efficiency","reprocessing_station_take","standing_owner_id","coordinates","services"],"properties":{"owner_id":{"description":"The entity that owns the station (e.g. the entity whose logo is on the station services bar)","type":"integer","format":"int32","title":"get_corporations_corporation_id_outposts_outpost_id_owner_id"},"system_id":{"description":"The ID of the solar system the outpost rests in","type":"integer","format":"int32","title":"get_corporations_corporation_id_outposts_outpost_id_system_id"},"docking_cost_per_ship_volume":{"type":"number","format":"float","title":"get_corporations_corporation_id_outposts_outpost_id_docking_cost_per_ship_volume","description":"docking_cost_per_ship_volume number"},"office_rental_cost":{"type":"integer","format":"int64","title":"get_corporations_corporation_id_outposts_outpost_id_office_rental_cost","description":"office_rental_cost integer"},"type_id":{"description":"The type ID of the given outpost","type":"integer","format":"int32","title":"get_corporations_corporation_id_outposts_outpost_id_type_id"},"reprocessing_efficiency":{"type":"number","format":"float","title":"get_corporations_corporation_id_outposts_outpost_id_reprocessing_efficiency","description":"reprocessing_efficiency number"},"reprocessing_station_take":{"type":"number","format":"float","title":"get_corporations_corporation_id_outposts_outpost_id_reprocessing_station_take","description":"reprocessing_station_take number"},"standing_owner_id":{"description":"The owner ID that sets the ability for someone to dock based on standings.","type":"integer","format":"int32","title":"get_corporations_corporation_id_outposts_outpost_id_standing_owner_id"},"coordinates":{"type":"object","required":["x","y","z"],"properties":{"x":{"type":"number","format":"double","title":"get_corporations_corporation_id_outposts_outpost_id_x","description":"x number"},"y":{"type":"number","format":"double","title":"get_corporations_corporation_id_outposts_outpost_id_y","description":"y number"},"z":{"type":"number","format":"double","title":"get_corporations_corporation_id_outposts_outpost_id_z","description":"z number"}},"title":"get_corporations_corporation_id_outposts_outpost_id_coordinates","description":"coordinates object"},"services":{"description":"A list of services the given outpost provides","type":"array","maxItems":27,"items":{"type":"object","required":["service_name","minimum_standing","surcharge_per_bad_standing","discount_per_good_standing"],"properties":{"service_name":{"type":"string","enum":["Bounty Missions","Assassination Missions","Courier Missions","Interbus","Reprocessing Plant","Refinery","Market","Black Market","Stock Exchange","Cloning","Surgery","DNA Therapy","Repair Facilities","Factory","Laboratory","Gambling","Fitting","Paintshop","News","Storage","Insurance","Docking","Office Rental","Jump Clone Facility","Loyalty Point Store","Navy Offices","Security Office"],"title":"get_corporations_corporation_id_outposts_outpost_id_service_name","description":"service_name string"},"minimum_standing":{"type":"number","format":"double","title":"get_corporations_corporation_id_outposts_outpost_id_minimum_standing","description":"minimum_standing number"},"surcharge_per_bad_standing":{"type":"number","format":"double","title":"get_corporations_corporation_id_outposts_outpost_id_surcharge_per_bad_standing","description":"surcharge_per_bad_standing number"},"discount_per_good_standing":{"type":"number","format":"double","title":"get_corporations_corporation_id_outposts_outpost_id_discount_per_good_standing","description":"discount_per_good_standing number"}},"title":"get_corporations_corporation_id_outposts_outpost_id_service","description":"service object"},"title":"get_corporations_corporation_id_outposts_outpost_id_services"}},"title":"get_corporations_corporation_id_outposts_outpost_id_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Director"],"security":[{"evesso":["esi-corporations.read_outposts.v1"]}],"operationId":"get_corporations_corporation_id_outposts_outpost_id","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/dogma/attributes/":{"get":{"description":"Get a list of dogma attribute ids\n\n---\n\nThis route expires daily at 11:05","summary":"Get attributes","tags":["Dogma"],"responses":{"200":{"description":"A list of dogma attribute ids","examples":{"application/json":[1,2,3]},"schema":{"type":"array","maxItems":10000,"items":{"type":"integer","format":"int32","title":"get_dogma_attributes_200_ok","description":"200 ok integer"},"title":"get_dogma_attributes_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_dogma_attributes","x-alternate-versions":["dev","legacy","v1"]}},"/v1/dogma/attributes/{attribute_id}/":{"get":{"description":"Get information on a dogma attribute\n\n---\n\nThis route expires daily at 11:05","summary":"Get attribute information","tags":["Dogma"],"parameters":[{"name":"attribute_id","in":"path","description":"A dogma attribute ID","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a dogma attribute","examples":{"application/json":{"attribute_id":20,"name":"speedFactor","description":"Factor by which topspeed increases.","icon_id":1389,"default_value":1,"published":true,"display_name":"Maximum Velocity Bonus","unit_id":124,"high_is_good":true}},"schema":{"type":"object","required":["attribute_id"],"properties":{"attribute_id":{"type":"integer","format":"int32","title":"get_dogma_attributes_attribute_id_attribute_id","description":"attribute_id integer"},"name":{"type":"string","title":"get_dogma_attributes_attribute_id_name","description":"name string"},"description":{"type":"string","title":"get_dogma_attributes_attribute_id_description","description":"description string"},"icon_id":{"type":"integer","format":"int32","title":"get_dogma_attributes_attribute_id_icon_id","description":"icon_id integer"},"default_value":{"type":"number","format":"float","title":"get_dogma_attributes_attribute_id_default_value","description":"default_value number"},"published":{"type":"boolean","title":"get_dogma_attributes_attribute_id_published","description":"published boolean"},"display_name":{"type":"string","title":"get_dogma_attributes_attribute_id_display_name","description":"display_name string"},"unit_id":{"type":"integer","format":"int32","title":"get_dogma_attributes_attribute_id_unit_id","description":"unit_id integer"},"stackable":{"type":"boolean","title":"get_dogma_attributes_attribute_id_stackable","description":"stackable boolean"},"high_is_good":{"type":"boolean","title":"get_dogma_attributes_attribute_id_high_is_good","description":"high_is_good boolean"}},"title":"get_dogma_attributes_attribute_id_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"Dogma attribute not found","schema":{"type":"object","title":"get_dogma_attributes_attribute_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_dogma_attributes_attribute_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_dogma_attributes_attribute_id","x-alternate-versions":["dev","legacy","v1"]}},"/v1/dogma/effects/":{"get":{"description":"Get a list of dogma effect ids\n\n---\n\nThis route expires daily at 11:05","summary":"Get effects","tags":["Dogma"],"responses":{"200":{"description":"A list of dogma effect ids","examples":{"application/json":[1,2,3]},"schema":{"type":"array","maxItems":10000,"items":{"type":"integer","format":"int32","title":"get_dogma_effects_200_ok","description":"200 ok integer"},"title":"get_dogma_effects_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_dogma_effects","x-alternate-versions":["dev","legacy","v1"]}},"/v2/dogma/effects/{effect_id}/":{"get":{"description":"Get information on a dogma effect\n\n---\n\nThis route expires daily at 11:05","summary":"Get effect information","tags":["Dogma"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"effect_id","in":"path","description":"A dogma effect ID","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a dogma effect","examples":{"application/json":{"effect_id":12,"name":"hiPower","display_name":"High power","description":"Requires a high power slot.","icon_id":293,"effect_category":0,"pre_expression":131,"post_expression":131,"published":true}},"schema":{"type":"object","required":["effect_id"],"properties":{"effect_id":{"type":"integer","format":"int32","title":"get_dogma_effects_effect_id_effect_id","description":"effect_id integer"},"name":{"type":"string","title":"get_dogma_effects_effect_id_name","description":"name string"},"display_name":{"type":"string","title":"get_dogma_effects_effect_id_display_name","description":"display_name string"},"description":{"type":"string","title":"get_dogma_effects_effect_id_description","description":"description string"},"icon_id":{"type":"integer","format":"int32","title":"get_dogma_effects_effect_id_icon_id","description":"icon_id integer"},"effect_category":{"type":"integer","format":"int32","title":"get_dogma_effects_effect_id_effect_category","description":"effect_category integer"},"pre_expression":{"type":"integer","format":"int32","title":"get_dogma_effects_effect_id_pre_expression","description":"pre_expression integer"},"post_expression":{"type":"integer","format":"int32","title":"get_dogma_effects_effect_id_post_expression","description":"post_expression integer"},"is_offensive":{"type":"boolean","title":"get_dogma_effects_effect_id_is_offensive","description":"is_offensive boolean"},"is_assistance":{"type":"boolean","title":"get_dogma_effects_effect_id_is_assistance","description":"is_assistance boolean"},"disallow_auto_repeat":{"type":"boolean","title":"get_dogma_effects_effect_id_disallow_auto_repeat","description":"disallow_auto_repeat boolean"},"published":{"type":"boolean","title":"get_dogma_effects_effect_id_published","description":"published boolean"},"is_warp_safe":{"type":"boolean","title":"get_dogma_effects_effect_id_is_warp_safe","description":"is_warp_safe boolean"},"range_chance":{"type":"boolean","title":"get_dogma_effects_effect_id_range_chance","description":"range_chance boolean"},"electronic_chance":{"type":"boolean","title":"get_dogma_effects_effect_id_electronic_chance","description":"electronic_chance boolean"},"duration_attribute_id":{"type":"integer","format":"int32","title":"get_dogma_effects_effect_id_duration_attribute_id","description":"duration_attribute_id integer"},"tracking_speed_attribute_id":{"type":"integer","format":"int32","title":"get_dogma_effects_effect_id_tracking_speed_attribute_id","description":"tracking_speed_attribute_id integer"},"discharge_attribute_id":{"type":"integer","format":"int32","title":"get_dogma_effects_effect_id_discharge_attribute_id","description":"discharge_attribute_id integer"},"range_attribute_id":{"type":"integer","format":"int32","title":"get_dogma_effects_effect_id_range_attribute_id","description":"range_attribute_id integer"},"falloff_attribute_id":{"type":"integer","format":"int32","title":"get_dogma_effects_effect_id_falloff_attribute_id","description":"falloff_attribute_id integer"},"modifiers":{"type":"array","maxItems":100,"items":{"type":"object","required":["func"],"properties":{"func":{"type":"string","title":"get_dogma_effects_effect_id_func","description":"func string"},"domain":{"type":"string","title":"get_dogma_effects_effect_id_domain","description":"domain string"},"modified_attribute_id":{"type":"integer","format":"int32","title":"get_dogma_effects_effect_id_modified_attribute_id","description":"modified_attribute_id integer"},"modifying_attribute_id":{"type":"integer","format":"int32","title":"get_dogma_effects_effect_id_modifying_attribute_id","description":"modifying_attribute_id integer"},"effect_id":{"type":"integer","format":"int32","title":"get_dogma_effects_effect_id_effect_id","description":"effect_id integer"},"operator":{"type":"integer","format":"int32","title":"get_dogma_effects_effect_id_operator","description":"operator integer"}},"title":"get_dogma_effects_effect_id_modifier","description":"modifier object"},"title":"get_dogma_effects_effect_id_modifiers","description":"modifiers array"}},"title":"get_dogma_effects_effect_id_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"Dogma effect not found","schema":{"type":"object","title":"get_dogma_effects_effect_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_dogma_effects_effect_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_dogma_effects_effect_id","x-alternate-versions":["dev","v2"]}},"/v1/fw/wars/":{"get":{"description":"Data about which NPC factions are at war\n\n---\n\nThis route expires daily at 11:05","summary":"Data about which NPC factions are at war","tags":["Faction Warfare"],"responses":{"200":{"description":"A list of NPC factions at war","examples":{"application/json":[{"faction_id":500001,"against_id":500002}]},"schema":{"type":"array","description":"List of factions at war","maxItems":8,"items":{"type":"object","required":["faction_id","against_id"],"properties":{"faction_id":{"type":"integer","format":"int32","title":"get_fw_wars_faction_id","description":"faction_id integer"},"against_id":{"description":"The faction ID of the enemy faction.","type":"integer","format":"int32","title":"get_fw_wars_against_id"}},"title":"get_fw_wars_200_ok","description":"200 ok object"},"title":"get_fw_wars_ok"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_fw_wars","x-alternate-versions":["dev","legacy","v1"]}},"/v1/fw/stats/":{"get":{"summary":"An overview of statistics about factions involved in faction warfare","description":"Statistical overviews of factions involved in faction warfare\n\n---\n\nThis route expires daily at 11:05","tags":["Faction Warfare"],"responses":{"200":{"description":"Per faction breakdown of faction warfare statistics","examples":{"application/json":[{"faction_id":500001,"pilots":28863,"systems_controlled":20,"kills":{"yesterday":136,"last_week":893,"total":684350},"victory_points":{"yesterday":15980,"last_week":102640,"total":52658260}}]},"schema":{"type":"array","maxItems":4,"items":{"type":"object","required":["faction_id","pilots","systems_controlled","kills","victory_points"],"properties":{"faction_id":{"type":"integer","format":"int32","title":"get_fw_stats_faction_id","description":"faction_id integer"},"pilots":{"description":"How many pilots fight for the given faction","type":"integer","format":"int32","title":"get_fw_stats_pilots"},"systems_controlled":{"description":"The number of solar systems controlled by the given faction","type":"integer","format":"int32","title":"get_fw_stats_systems_controlled"},"kills":{"type":"object","description":"Summary of kills against an enemy faction for the given faction","required":["yesterday","last_week","total"],"properties":{"yesterday":{"type":"integer","format":"int32","description":"Yesterday's total number of kills against enemy factions","title":"get_fw_stats_yesterday"},"last_week":{"type":"integer","format":"int32","description":"Last week's total number of kills against enemy factions","title":"get_fw_stats_last_week"},"total":{"type":"integer","format":"int32","description":"Total number of kills against enemy factions since faction warfare began","title":"get_fw_stats_total"}},"title":"get_fw_stats_kills"},"victory_points":{"type":"object","description":"Summary of victory points gained for the given faction","required":["yesterday","last_week","total"],"properties":{"yesterday":{"type":"integer","format":"int32","description":"Yesterday's victory points gained","title":"get_fw_stats_yesterday"},"last_week":{"type":"integer","format":"int32","description":"Last week's victory points gained","title":"get_fw_stats_last_week"},"total":{"type":"integer","format":"int32","description":"Total victory points gained since faction warfare began","title":"get_fw_stats_total"}},"title":"get_fw_stats_victory_points"}},"title":"get_fw_stats_200_ok","description":"200 ok object"},"title":"get_fw_stats_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_fw_stats","x-alternate-versions":["dev","legacy","v1"]}},"/v1/fw/systems/":{"get":{"summary":"Ownership of faction warfare systems","description":"An overview of the current ownership of faction warfare solar systems\n\n---\n\nThis route is cached for up to 1800 seconds","tags":["Faction Warfare"],"responses":{"200":{"description":"All faction war solar systems","examples":{"application/json":[{"solar_system_id":30002096,"owner_faction_id":500001,"occupier_faction_id":500001,"victory_points":60,"victory_points_threshold":3000,"contested":true}]},"schema":{"type":"array","maxItems":171,"items":{"type":"object","required":["solar_system_id","occupier_faction_id","owner_faction_id","victory_points","victory_points_threshold","contested"],"properties":{"solar_system_id":{"type":"integer","format":"int32","title":"get_fw_systems_solar_system_id","description":"solar_system_id integer"},"owner_faction_id":{"type":"integer","format":"int32","title":"get_fw_systems_owner_faction_id","description":"owner_faction_id integer"},"occupier_faction_id":{"type":"integer","format":"int32","title":"get_fw_systems_occupier_faction_id","description":"occupier_faction_id integer"},"victory_points":{"type":"integer","format":"int32","title":"get_fw_systems_victory_points","description":"victory_points integer"},"victory_points_threshold":{"type":"integer","format":"int32","title":"get_fw_systems_victory_points_threshold","description":"victory_points_threshold integer"},"contested":{"type":"boolean","title":"get_fw_systems_contested","description":"contested boolean"}},"title":"get_fw_systems_200_ok","description":"200 ok object"},"title":"get_fw_systems_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_fw_systems","x-cached-seconds":1800,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/fw/leaderboards/":{"get":{"summary":"List of the top factions in faction warfare","description":"Top 4 leaderboard of factions for kills and victory points separated by total, last week and yesterday.\n\n---\n\nThis route expires daily at 11:05","tags":["Faction Warfare"],"responses":{"200":{"description":"Corporation leaderboard of kills and victory points within faction warfare.","examples":{"application/json":{"kills":{"yesterday":[{"faction_id":500001,"amount":100},{"faction_id":500004,"amount":50}],"last_week":[{"faction_id":500001,"amount":730},{"faction_id":500004,"amount":671}],"active_total":[{"faction_id":500004,"amount":832273},{"faction_id":500001,"amount":687915}]},"victory_points":{"yesterday":[{"faction_id":500002,"amount":5000},{"faction_id":500003,"amount":3500}],"last_week":[{"faction_id":500001,"amount":97360},{"faction_id":500004,"amount":84980}],"active_total":[{"faction_id":500001,"amount":53130500},{"faction_id":500004,"amount":50964263}]}}},"schema":{"type":"object","required":["kills","victory_points"],"properties":{"kills":{"type":"object","description":"Top 4 rankings of factions by number of kills from yesterday, last week and in total.","required":["yesterday","last_week","active_total"],"properties":{"yesterday":{"description":"Top 4 ranking of factions by kills in the past day","type":"array","maxItems":4,"items":{"type":"object","properties":{"faction_id":{"type":"integer","format":"int32","title":"get_fw_leaderboards_faction_id","description":"faction_id integer"},"amount":{"description":"Amount of kills","type":"integer","format":"int32","title":"get_fw_leaderboards_amount"}},"title":"get_fw_leaderboards_yesterday","description":"yesterday object"},"title":"get_fw_leaderboards_yesterday"},"last_week":{"description":"Top 4 ranking of factions by kills in the past week","type":"array","maxItems":4,"items":{"type":"object","properties":{"faction_id":{"type":"integer","format":"int32","title":"get_fw_leaderboards_faction_id","description":"faction_id integer"},"amount":{"description":"Amount of kills","type":"integer","format":"int32","title":"get_fw_leaderboards_amount"}},"title":"get_fw_leaderboards_last_week","description":"last_week object"},"title":"get_fw_leaderboards_last_week"},"active_total":{"description":"Top 4 ranking of factions active in faction warfare by total kills. A faction is considered \"active\" if they have participated in faction warfare in the past 14 days.","type":"array","maxItems":4,"items":{"type":"object","properties":{"faction_id":{"type":"integer","format":"int32","title":"get_fw_leaderboards_faction_id","description":"faction_id integer"},"amount":{"description":"Amount of kills","type":"integer","format":"int32","title":"get_fw_leaderboards_amount"}},"title":"get_fw_leaderboards_active_total","description":"active_total object"},"title":"get_fw_leaderboards_active_total"}},"title":"get_fw_leaderboards_kills"},"victory_points":{"description":"Top 4 rankings of factions by victory points from yesterday, last week and in total","type":"object","required":["yesterday","last_week","active_total"],"properties":{"yesterday":{"description":"Top 4 ranking of factions by victory points in the past day","type":"array","maxItems":4,"items":{"type":"object","properties":{"faction_id":{"type":"integer","format":"int32","title":"get_fw_leaderboards_faction_id","description":"faction_id integer"},"amount":{"description":"Amount of victory points","type":"integer","format":"int32","title":"get_fw_leaderboards_amount"}},"title":"get_fw_leaderboards_yesterday","description":"yesterday object"},"title":"get_fw_leaderboards_yesterday"},"last_week":{"description":"Top 4 ranking of factions by victory points in the past week","type":"array","maxItems":4,"items":{"type":"object","properties":{"faction_id":{"type":"integer","format":"int32","title":"get_fw_leaderboards_faction_id","description":"faction_id integer"},"amount":{"description":"Amount of victory points","type":"integer","format":"int32","title":"get_fw_leaderboards_amount"}},"title":"get_fw_leaderboards_last_week","description":"last_week object"},"title":"get_fw_leaderboards_last_week"},"active_total":{"description":"Top 4 ranking of factions active in faction warfare by total victory points. A faction is considered \"active\" if they have participated in faction warfare in the past 14 days.","type":"array","maxItems":4,"items":{"type":"object","properties":{"faction_id":{"type":"integer","format":"int32","title":"get_fw_leaderboards_faction_id","description":"faction_id integer"},"amount":{"description":"Amount of victory points","type":"integer","format":"int32","title":"get_fw_leaderboards_amount"}},"title":"get_fw_leaderboards_active_total","description":"active_total object"},"title":"get_fw_leaderboards_active_total"}},"title":"get_fw_leaderboards_victory_points"}},"title":"get_fw_leaderboards_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_fw_leaderboards","x-alternate-versions":["dev","legacy","v1"]}},"/v1/fw/leaderboards/characters/":{"get":{"summary":"List of the top pilots in faction warfare","description":"Top 100 leaderboard of pilots for kills and victory points separated by total, last week and yesterday.\n\n---\n\nThis route expires daily at 11:05","tags":["Faction Warfare"],"responses":{"200":{"description":"Character leaderboard of kills and victory points within faction warfare.","examples":{"application/json":{"kills":{"yesterday":[{"character_id":2112625428,"amount":34},{"character_id":95465499,"amount":20}],"last_week":[{"character_id":2112625428,"amount":100},{"character_id":95465499,"amount":70}],"active_total":[{"character_id":2112625428,"amount":10000},{"character_id":95465499,"amount":8500}]},"victory_points":{"yesterday":[{"character_id":2112625428,"amount":620},{"character_id":95465499,"amount":550}],"last_week":[{"character_id":2112625428,"amount":2660},{"character_id":95465499,"amount":2000}],"active_total":[{"character_id":2112625428,"amount":1239158},{"character_id":95465499,"amount":1139029}]}}},"schema":{"type":"object","required":["kills","victory_points"],"properties":{"kills":{"type":"object","description":"Top 100 rankings of pilots by number of kills from yesterday, last week and in total.","required":["yesterday","last_week","active_total"],"properties":{"yesterday":{"description":"Top 100 ranking of pilots by kills in the past day","type":"array","maxItems":100,"items":{"type":"object","properties":{"character_id":{"type":"integer","format":"int32","title":"get_fw_leaderboards_characters_character_id","description":"character_id integer"},"amount":{"description":"Amount of kills","type":"integer","format":"int32","title":"get_fw_leaderboards_characters_amount"}},"title":"get_fw_leaderboards_characters_yesterday","description":"yesterday object"},"title":"get_fw_leaderboards_characters_yesterday"},"last_week":{"description":"Top 100 ranking of pilots by kills in the past week","type":"array","maxItems":100,"items":{"type":"object","properties":{"character_id":{"type":"integer","format":"int32","title":"get_fw_leaderboards_characters_character_id","description":"character_id integer"},"amount":{"description":"Amount of kills","type":"integer","format":"int32","title":"get_fw_leaderboards_characters_amount"}},"title":"get_fw_leaderboards_characters_last_week","description":"last_week object"},"title":"get_fw_leaderboards_characters_last_week"},"active_total":{"description":"Top 100 ranking of pilots active in faction warfare by total kills. A pilot is considered \"active\" if they have participated in faction warfare in the past 14 days.","type":"array","maxItems":100,"items":{"type":"object","properties":{"character_id":{"type":"integer","format":"int32","title":"get_fw_leaderboards_characters_character_id","description":"character_id integer"},"amount":{"description":"Amount of kills","type":"integer","format":"int32","title":"get_fw_leaderboards_characters_amount"}},"title":"get_fw_leaderboards_characters_active_total","description":"active_total object"},"title":"get_fw_leaderboards_characters_active_total"}},"title":"get_fw_leaderboards_characters_kills"},"victory_points":{"description":"Top 100 rankings of pilots by victory points from yesterday, last week and in total","type":"object","required":["yesterday","last_week","active_total"],"properties":{"yesterday":{"description":"Top 100 ranking of pilots by victory points in the past day","type":"array","maxItems":100,"items":{"type":"object","properties":{"character_id":{"type":"integer","format":"int32","title":"get_fw_leaderboards_characters_character_id","description":"character_id integer"},"amount":{"description":"Amount of victory points","type":"integer","format":"int32","title":"get_fw_leaderboards_characters_amount"}},"title":"get_fw_leaderboards_characters_yesterday","description":"yesterday object"},"title":"get_fw_leaderboards_characters_yesterday"},"last_week":{"description":"Top 100 ranking of pilots by victory points in the past week","type":"array","maxItems":100,"items":{"type":"object","properties":{"character_id":{"type":"integer","format":"int32","title":"get_fw_leaderboards_characters_character_id","description":"character_id integer"},"amount":{"description":"Amount of victory points","type":"integer","format":"int32","title":"get_fw_leaderboards_characters_amount"}},"title":"get_fw_leaderboards_characters_last_week","description":"last_week object"},"title":"get_fw_leaderboards_characters_last_week"},"active_total":{"description":"Top 100 ranking of pilots active in faction warfare by total victory points. A pilot is considered \"active\" if they have participated in faction warfare in the past 14 days.","type":"array","maxItems":100,"items":{"type":"object","properties":{"character_id":{"type":"integer","format":"int32","title":"get_fw_leaderboards_characters_character_id","description":"character_id integer"},"amount":{"description":"Amount of victory points","type":"integer","format":"int32","title":"get_fw_leaderboards_characters_amount"}},"title":"get_fw_leaderboards_characters_active_total","description":"active_total object"},"title":"get_fw_leaderboards_characters_active_total"}},"title":"get_fw_leaderboards_characters_victory_points"}},"title":"get_fw_leaderboards_characters_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_fw_leaderboards_characters","x-alternate-versions":["dev","legacy","v1"]}},"/v1/fw/leaderboards/corporations/":{"get":{"summary":"List of the top corporations in faction warfare","description":"Top 10 leaderboard of corporations for kills and victory points separated by total, last week and yesterday.\n\n---\n\nThis route expires daily at 11:05","tags":["Faction Warfare"],"responses":{"200":{"description":"Corporation leaderboard of kills and victory points within faction warfare.","examples":{"application/json":{"kills":{"yesterday":[{"corporation_id":1000180,"amount":51},{"corporation_id":1000182,"amount":39}],"last_week":[{"corporation_id":1000180,"amount":290},{"corporation_id":1000182,"amount":169}],"active_total":[{"corporation_id":1000180,"amount":81692},{"corporation_id":1000182,"amount":76793}]},"victory_points":{"yesterday":[{"corporation_id":1000180,"amount":12600},{"corporation_id":1000181,"amount":8240}],"last_week":[{"corporation_id":1000180,"amount":91980},{"corporation_id":1000181,"amount":58920}],"active_total":[{"corporation_id":1000180,"amount":18640927},{"corporation_id":1000181,"amount":18078265}]}}},"schema":{"type":"object","required":["kills","victory_points"],"properties":{"kills":{"type":"object","description":"Top 10 rankings of corporations by number of kills from yesterday, last week and in total.","required":["yesterday","last_week","active_total"],"properties":{"yesterday":{"description":"Top 10 ranking of corporations by kills in the past day","type":"array","maxItems":10,"items":{"type":"object","properties":{"corporation_id":{"type":"integer","format":"int32","title":"get_fw_leaderboards_corporations_corporation_id","description":"corporation_id integer"},"amount":{"description":"Amount of kills","type":"integer","format":"int32","title":"get_fw_leaderboards_corporations_amount"}},"title":"get_fw_leaderboards_corporations_yesterday","description":"yesterday object"},"title":"get_fw_leaderboards_corporations_yesterday"},"last_week":{"description":"Top 10 ranking of corporations by kills in the past week","type":"array","maxItems":10,"items":{"type":"object","properties":{"corporation_id":{"type":"integer","format":"int32","title":"get_fw_leaderboards_corporations_corporation_id","description":"corporation_id integer"},"amount":{"description":"Amount of kills","type":"integer","format":"int32","title":"get_fw_leaderboards_corporations_amount"}},"title":"get_fw_leaderboards_corporations_last_week","description":"last_week object"},"title":"get_fw_leaderboards_corporations_last_week"},"active_total":{"description":"Top 10 ranking of corporations active in faction warfare by total kills. A corporation is considered \"active\" if they have participated in faction warfare in the past 14 days.","type":"array","maxItems":10,"items":{"type":"object","properties":{"corporation_id":{"type":"integer","format":"int32","title":"get_fw_leaderboards_corporations_corporation_id","description":"corporation_id integer"},"amount":{"description":"Amount of kills","type":"integer","format":"int32","title":"get_fw_leaderboards_corporations_amount"}},"title":"get_fw_leaderboards_corporations_active_total","description":"active_total object"},"title":"get_fw_leaderboards_corporations_active_total"}},"title":"get_fw_leaderboards_corporations_kills"},"victory_points":{"description":"Top 10 rankings of corporations by victory points from yesterday, last week and in total","type":"object","required":["yesterday","last_week","active_total"],"properties":{"yesterday":{"description":"Top 10 ranking of corporations by victory points in the past day","type":"array","maxItems":10,"items":{"type":"object","properties":{"corporation_id":{"type":"integer","format":"int32","title":"get_fw_leaderboards_corporations_corporation_id","description":"corporation_id integer"},"amount":{"description":"Amount of victory points","type":"integer","format":"int32","title":"get_fw_leaderboards_corporations_amount"}},"title":"get_fw_leaderboards_corporations_yesterday","description":"yesterday object"},"title":"get_fw_leaderboards_corporations_yesterday"},"last_week":{"description":"Top 10 ranking of corporations by victory points in the past week","type":"array","maxItems":10,"items":{"type":"object","properties":{"corporation_id":{"type":"integer","format":"int32","title":"get_fw_leaderboards_corporations_corporation_id","description":"corporation_id integer"},"amount":{"description":"Amount of victory points","type":"integer","format":"int32","title":"get_fw_leaderboards_corporations_amount"}},"title":"get_fw_leaderboards_corporations_last_week","description":"last_week object"},"title":"get_fw_leaderboards_corporations_last_week"},"active_total":{"description":"Top 10 ranking of corporations active in faction warfare by total victory points. A corporation is considered \"active\" if they have participated in faction warfare in the past 14 days.","type":"array","maxItems":10,"items":{"type":"object","properties":{"corporation_id":{"type":"integer","format":"int32","title":"get_fw_leaderboards_corporations_corporation_id","description":"corporation_id integer"},"amount":{"description":"Amount of victory points","type":"integer","format":"int32","title":"get_fw_leaderboards_corporations_amount"}},"title":"get_fw_leaderboards_corporations_active_total","description":"active_total object"},"title":"get_fw_leaderboards_corporations_active_total"}},"title":"get_fw_leaderboards_corporations_victory_points"}},"title":"get_fw_leaderboards_corporations_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_fw_leaderboards_corporations","x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/fw/stats/":{"get":{"summary":"Overview of a corporation involved in faction warfare","description":"Statistics about a corporation involved in faction warfare\n\n---\n\nThis route expires daily at 11:05","tags":["Faction Warfare"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Faction warfare statistics for a given corporation","examples":{"application/json":{"faction_id":500001,"enlisted_on":"2017-10-17T00:00:00Z","pilots":28863,"kills":{"yesterday":136,"last_week":893,"total":684350},"victory_points":{"yesterday":15980,"last_week":102640,"total":52658260}}},"schema":{"type":"object","required":["kills","victory_points"],"properties":{"faction_id":{"type":"integer","format":"int32","description":"The faction the given corporation is enlisted to fight for. Will not be included if corporation is not enlisted in faction warfare","title":"get_corporations_corporation_id_fw_stats_faction_id"},"enlisted_on":{"type":"string","format":"date-time","description":"The enlistment date of the given corporation into faction warfare. Will not be included if corporation is not enlisted in faction warfare","title":"get_corporations_corporation_id_fw_stats_enlisted_on"},"pilots":{"type":"integer","format":"int32","description":"How many pilots the enlisted corporation has. Will not be included if corporation is not enlisted in faction warfare","title":"get_corporations_corporation_id_fw_stats_pilots"},"kills":{"type":"object","description":"Summary of kills done by the given corporation against enemy factions","required":["yesterday","last_week","total"],"properties":{"yesterday":{"type":"integer","format":"int32","description":"Yesterday's total number of kills by members of the given corporation against enemy factions","title":"get_corporations_corporation_id_fw_stats_yesterday"},"last_week":{"type":"integer","format":"int32","description":"Last week's total number of kills by members of the given corporation against enemy factions","title":"get_corporations_corporation_id_fw_stats_last_week"},"total":{"type":"integer","format":"int32","description":"Total number of kills by members of the given corporation against enemy factions since the corporation enlisted","title":"get_corporations_corporation_id_fw_stats_total"}},"title":"get_corporations_corporation_id_fw_stats_kills"},"victory_points":{"type":"object","description":"Summary of victory points gained by the given corporation for the enlisted faction","required":["yesterday","last_week","total"],"properties":{"yesterday":{"type":"integer","format":"int32","description":"Yesterday's victory points gained by members of the given corporation","title":"get_corporations_corporation_id_fw_stats_yesterday"},"last_week":{"type":"integer","format":"int32","description":"Last week's victory points gained by members of the given corporation","title":"get_corporations_corporation_id_fw_stats_last_week"},"total":{"type":"integer","format":"int32","description":"Total victory points gained since the given corporation enlisted","title":"get_corporations_corporation_id_fw_stats_total"}},"title":"get_corporations_corporation_id_fw_stats_victory_points"}},"title":"get_corporations_corporation_id_fw_stats_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":[],"security":[{"evesso":["esi-corporations.read_fw_stats.v1"]}],"operationId":"get_corporations_corporation_id_fw_stats","x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/fw/stats/":{"get":{"summary":"Overview of a character involved in faction warfare","description":"Statistical overview of a character involved in faction warfare\n\n---\n\nThis route expires daily at 11:05","tags":["Faction Warfare"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Faction warfare statistics for a given character","examples":{"application/json":{"faction_id":500001,"enlisted_on":"2017-10-17T00:00:00Z","kills":{"yesterday":136,"last_week":893,"total":684350},"victory_points":{"yesterday":15980,"last_week":102640,"total":52658260}}},"schema":{"type":"object","required":["kills","victory_points"],"properties":{"faction_id":{"type":"integer","format":"int32","description":"The faction the given character is enlisted to fight for. Will not be included if character is not enlisted in faction warfare","title":"get_characters_character_id_fw_stats_faction_id"},"enlisted_on":{"type":"string","format":"date-time","description":"The enlistment date of the given character into faction warfare. Will not be included if character is not enlisted in faction warfare","title":"get_characters_character_id_fw_stats_enlisted_on"},"current_rank":{"type":"integer","format":"int32","description":"The given character's current faction rank","minimum":0,"maximum":9,"title":"get_characters_character_id_fw_stats_current_rank"},"highest_rank":{"type":"integer","format":"int32","description":"The given character's highest faction rank achieved","minimum":0,"maximum":9,"title":"get_characters_character_id_fw_stats_highest_rank"},"kills":{"type":"object","description":"Summary of kills done by the given character against enemy factions","required":["yesterday","last_week","total"],"properties":{"yesterday":{"type":"integer","format":"int32","description":"Yesterday's total number of kills by a given character against enemy factions","title":"get_characters_character_id_fw_stats_yesterday"},"last_week":{"type":"integer","format":"int32","description":"Last week's total number of kills by a given character against enemy factions","title":"get_characters_character_id_fw_stats_last_week"},"total":{"type":"integer","format":"int32","description":"Total number of kills by a given character against enemy factions since the character enlisted","title":"get_characters_character_id_fw_stats_total"}},"title":"get_characters_character_id_fw_stats_kills"},"victory_points":{"type":"object","description":"Summary of victory points gained by the given character for the enlisted faction","required":["yesterday","last_week","total"],"properties":{"yesterday":{"type":"integer","format":"int32","description":"Yesterday's victory points gained by the given character","title":"get_characters_character_id_fw_stats_yesterday"},"last_week":{"type":"integer","format":"int32","description":"Last week's victory points gained by the given character","title":"get_characters_character_id_fw_stats_last_week"},"total":{"type":"integer","format":"int32","description":"Total victory points gained since the given character enlisted","title":"get_characters_character_id_fw_stats_total"}},"title":"get_characters_character_id_fw_stats_victory_points"}},"title":"get_characters_character_id_fw_stats_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-characters.read_fw_stats.v1"]}],"operationId":"get_characters_character_id_fw_stats","x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/fittings/{fitting_id}/":{"delete":{"description":"Delete a fitting from a character\n\n---\n","summary":"Delete fitting","tags":["Fittings"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"name":"fitting_id","in":"path","description":"ID for a fitting of this character","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Fitting deleted"},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-fittings.write_fittings.v1"]}],"operationId":"delete_characters_character_id_fittings_fitting_id","x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/fittings/":{"get":{"description":"Return fittings of a character\n\n---\n\nThis route is cached for up to 300 seconds","summary":"Get fittings","tags":["Fittings"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of fittings","examples":{"application/json":[{"fitting_id":1,"name":"Best Vindicator","description":"Awesome Vindi fitting","ship_type_id":123,"items":[{"type_id":1234,"flag":12,"quantity":1}]}]},"schema":{"type":"array","maxItems":250,"items":{"type":"object","required":["fitting_id","name","description","ship_type_id","items"],"properties":{"fitting_id":{"type":"integer","format":"int32","title":"get_characters_character_id_fittings_fitting_id","description":"fitting_id integer"},"name":{"type":"string","title":"get_characters_character_id_fittings_name","description":"name string"},"description":{"type":"string","title":"get_characters_character_id_fittings_description","description":"description string"},"ship_type_id":{"type":"integer","format":"int32","title":"get_characters_character_id_fittings_ship_type_id","description":"ship_type_id integer"},"items":{"type":"array","maxItems":255,"items":{"type":"object","required":["type_id","flag","quantity"],"properties":{"type_id":{"type":"integer","format":"int32","title":"get_characters_character_id_fittings_type_id","description":"type_id integer"},"flag":{"type":"integer","format":"int32","title":"get_characters_character_id_fittings_flag","description":"flag integer"},"quantity":{"type":"integer","format":"int32","title":"get_characters_character_id_fittings_quantity","description":"quantity integer"}},"title":"get_characters_character_id_fittings_item","description":"item object"},"title":"get_characters_character_id_fittings_items","description":"items array"}},"title":"get_characters_character_id_fittings_200_ok","description":"200 ok object"},"title":"get_characters_character_id_fittings_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-fittings.read_fittings.v1"]}],"operationId":"get_characters_character_id_fittings","x-cached-seconds":300,"x-alternate-versions":["dev","legacy","v1"]},"post":{"description":"Save a new fitting for a character\n\n---\n","summary":"Create fitting","tags":["Fittings"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"name":"fitting","in":"body","required":true,"description":"Details about the new fitting","schema":{"type":"object","required":["name","description","ship_type_id","items"],"properties":{"name":{"type":"string","minLength":1,"maxLength":50,"title":"post_characters_character_id_fittings_name","description":"name string"},"description":{"type":"string","minLength":0,"maxLength":500,"title":"post_characters_character_id_fittings_description","description":"description string"},"ship_type_id":{"type":"integer","format":"int32","title":"post_characters_character_id_fittings_ship_type_id","description":"ship_type_id integer"},"items":{"type":"array","minItems":1,"maxItems":255,"items":{"type":"object","required":["type_id","flag","quantity"],"properties":{"type_id":{"type":"integer","format":"int32","title":"post_characters_character_id_fittings_type_id","description":"type_id integer"},"flag":{"type":"integer","format":"int32","title":"post_characters_character_id_fittings_flag","description":"flag integer"},"quantity":{"type":"integer","format":"int32","title":"post_characters_character_id_fittings_quantity","description":"quantity integer"}},"title":"post_characters_character_id_fittings_item","description":"item object"},"title":"post_characters_character_id_fittings_items","description":"items array"}},"title":"post_characters_character_id_fittings_fitting","description":"fitting object"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"201":{"description":"A list of fittings","examples":{"application/json":{"fitting_id":2}},"schema":{"type":"object","required":["fitting_id"],"properties":{"fitting_id":{"type":"integer","format":"int32","title":"post_characters_character_id_fittings_fitting_id","description":"fitting_id integer"}},"title":"post_characters_character_id_fittings_created","description":"201 created object"}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-fittings.write_fittings.v1"]}],"operationId":"post_characters_character_id_fittings","x-alternate-versions":["dev","legacy","v1"]}},"/v1/fleets/{fleet_id}/":{"get":{"description":"Return details about a fleet\n\n---\n\nThis route is cached for up to 5 seconds","summary":"Get fleet information","tags":["Fleets"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"fleet_id","in":"path","description":"ID for a fleet","required":true,"type":"integer","format":"int64"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Details about a fleet","examples":{"application/json":{"motd":"This is an awesome fleet!","is_free_move":false,"is_registered":false,"is_voice_enabled":false}},"schema":{"type":"object","required":["motd","is_free_move","is_registered","is_voice_enabled"],"properties":{"motd":{"type":"string","description":"Fleet MOTD in CCP flavoured HTML","title":"get_fleets_fleet_id_motd"},"is_free_move":{"type":"boolean","description":"Is free-move enabled","title":"get_fleets_fleet_id_is_free_move"},"is_registered":{"type":"boolean","description":"Does the fleet have an active fleet advertisement","title":"get_fleets_fleet_id_is_registered"},"is_voice_enabled":{"type":"boolean","description":"Is EVE Voice enabled","title":"get_fleets_fleet_id_is_voice_enabled"}},"title":"get_fleets_fleet_id_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"The fleet does not exist or you don't have access to it","schema":{"type":"object","title":"get_fleets_fleet_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_fleets_fleet_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-fleets.read_fleet.v1"]}],"operationId":"get_fleets_fleet_id","x-cached-seconds":5,"x-alternate-versions":["dev","legacy","v1"]},"put":{"description":"Update settings about a fleet\n\n---\n","summary":"Update fleet","tags":["Fleets"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"fleet_id","in":"path","description":"ID for a fleet","required":true,"type":"integer","format":"int64"},{"name":"new_settings","in":"body","description":"What to update for this fleet","required":true,"schema":{"type":"object","properties":{"motd":{"type":"string","description":"New fleet MOTD in CCP flavoured HTML","title":"put_fleets_fleet_id_motd"},"is_free_move":{"type":"boolean","description":"Should free-move be enabled in the fleet","title":"put_fleets_fleet_id_is_free_move"}},"title":"put_fleets_fleet_id_new_settings","description":"new_settings object"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Fleet updated"},"400":{"description":"Invalid request body","schema":{"type":"object","title":"put_fleets_fleet_id_bad_request","description":"Bad request","properties":{"error":{"type":"string","description":"Bad request message","title":"put_fleets_fleet_id_400_bad_request"}}},"examples":{"application/json":{"error":"Bad request message"}}},"404":{"description":"The fleet does not exist or you don't have access to it","schema":{"type":"object","title":"put_fleets_fleet_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"put_fleets_fleet_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-fleets.write_fleet.v1"]}],"operationId":"put_fleets_fleet_id","x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/fleet/":{"get":{"description":"Return the fleet ID the character is in, if any.\n\n---\n\nThis route is cached for up to 60 seconds","summary":"Get character fleet info","tags":["Fleets"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Details about the character's fleet","examples":{"application/json":{"fleet_id":1234567890,"wing_id":-1,"squad_id":-1,"role":"fleet_commander"}},"schema":{"type":"object","required":["fleet_id","wing_id","squad_id","role"],"properties":{"fleet_id":{"type":"integer","format":"int64","description":"The character's current fleet ID","title":"get_characters_character_id_fleet_fleet_id"},"wing_id":{"type":"integer","format":"int64","description":"ID of the wing the member is in. If not applicable, will be set to -1","title":"get_characters_character_id_fleet_wing_id"},"squad_id":{"type":"integer","format":"int64","description":"ID of the squad the member is in. If not applicable, will be set to -1","title":"get_characters_character_id_fleet_squad_id"},"role":{"type":"string","description":"Member\u2019s role in fleet","enum":["fleet_commander","squad_commander","squad_member","wing_commander"],"title":"get_characters_character_id_fleet_role"}},"title":"get_characters_character_id_fleet_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"The character is not in a fleet","schema":{"type":"object","title":"get_characters_character_id_fleet_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_characters_character_id_fleet_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-fleets.read_fleet.v1"]}],"operationId":"get_characters_character_id_fleet","x-cached-seconds":60,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/fleets/{fleet_id}/members/":{"get":{"description":"Return information about fleet members\n\n---\n\nThis route is cached for up to 5 seconds","summary":"Get fleet members","tags":["Fleets"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"fleet_id","in":"path","description":"ID for a fleet","required":true,"type":"integer","format":"int64"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of fleet members","examples":{"application/json":[{"character_id":93265215,"ship_type_id":33328,"wing_id":2073711261968,"squad_id":3129411261968,"role":"squad_commander","role_name":"Squad Commander (Boss)","join_time":"2016-04-29T12:34:56Z","takes_fleet_warp":true,"solar_system_id":30003729,"station_id":61000180}]},"schema":{"type":"array","maxItems":256,"items":{"type":"object","required":["character_id","ship_type_id","wing_id","squad_id","role","role_name","join_time","takes_fleet_warp","solar_system_id"],"properties":{"character_id":{"type":"integer","format":"int32","title":"get_fleets_fleet_id_members_character_id","description":"character_id integer"},"ship_type_id":{"type":"integer","format":"int32","title":"get_fleets_fleet_id_members_ship_type_id","description":"ship_type_id integer"},"wing_id":{"type":"integer","format":"int64","description":"ID of the wing the member is in. If not applicable, will be set to -1","title":"get_fleets_fleet_id_members_wing_id"},"squad_id":{"type":"integer","format":"int64","description":"ID of the squad the member is in. If not applicable, will be set to -1","title":"get_fleets_fleet_id_members_squad_id"},"role":{"type":"string","description":"Member\u2019s role in fleet","enum":["fleet_commander","wing_commander","squad_commander","squad_member"],"title":"get_fleets_fleet_id_members_role"},"role_name":{"type":"string","description":"Localized role names","title":"get_fleets_fleet_id_members_role_name"},"join_time":{"type":"string","format":"date-time","title":"get_fleets_fleet_id_members_join_time","description":"join_time string"},"takes_fleet_warp":{"type":"boolean","description":"Whether the member take fleet warps","title":"get_fleets_fleet_id_members_takes_fleet_warp"},"solar_system_id":{"type":"integer","format":"int32","description":"Solar system the member is located in","title":"get_fleets_fleet_id_members_solar_system_id"},"station_id":{"type":"integer","format":"int64","description":"Station in which the member is docked in, if applicable","title":"get_fleets_fleet_id_members_station_id"}},"title":"get_fleets_fleet_id_members_200_ok","description":"200 ok object"},"title":"get_fleets_fleet_id_members_ok","description":"200 ok array"},"headers":{"Content-Language":{"description":"The language used in the response","type":"string","enum":["de","en-us","fr","ja","ru","zh"]},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"The fleet does not exist or you don't have access to it","schema":{"type":"object","title":"get_fleets_fleet_id_members_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_fleets_fleet_id_members_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-fleets.read_fleet.v1"]}],"operationId":"get_fleets_fleet_id_members","x-cached-seconds":5,"x-alternate-versions":["dev","legacy","v1"]},"post":{"description":"Invite a character into the fleet. If a character has a CSPA charge set it is not possible to invite them to the fleet using ESI\n\n---\n","summary":"Create fleet invitation","tags":["Fleets"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"fleet_id","in":"path","description":"ID for a fleet","required":true,"type":"integer","format":"int64"},{"name":"invitation","in":"body","description":"Details of the invitation","required":true,"schema":{"type":"object","required":["character_id","role"],"properties":{"character_id":{"type":"integer","format":"int32","description":"The character you want to invite","title":"post_fleets_fleet_id_members_character_id"},"role":{"type":"string","description":"If a character is invited with the `fleet_commander` role, neither `wing_id` or `squad_id` should be specified. If a character is invited with the `wing_commander` role, only `wing_id` should be specified. If a character is invited with the `squad_commander` role, both `wing_id` and `squad_id` should be specified. If a character is invited with the `squad_member` role, `wing_id` and `squad_id` should either both be specified or not specified at all. If they aren\u2019t specified, the invited character will join any squad with available positions.","enum":["fleet_commander","wing_commander","squad_commander","squad_member"],"title":"post_fleets_fleet_id_members_role"},"wing_id":{"type":"integer","format":"int64","minimum":0,"title":"post_fleets_fleet_id_members_wing_id","description":"wing_id integer"},"squad_id":{"type":"integer","format":"int64","minimum":0,"title":"post_fleets_fleet_id_members_squad_id","description":"squad_id integer"}},"title":"post_fleets_fleet_id_members_invitation","description":"invitation object"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Fleet invitation sent"},"404":{"description":"The fleet does not exist or you don't have access to it","schema":{"type":"object","title":"post_fleets_fleet_id_members_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"post_fleets_fleet_id_members_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"422":{"description":"Errors in invitation","examples":{"application/json":{"error":"missing wing_id"}},"schema":{"type":"object","properties":{"error":{"type":"string","description":"error message","title":"post_fleets_fleet_id_members_error"}},"title":"post_fleets_fleet_id_members_unprocessable_entity","description":"422 unprocessable entity object"}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-fleets.write_fleet.v1"]}],"operationId":"post_fleets_fleet_id_members","x-alternate-versions":["dev","legacy","v1"]}},"/v1/fleets/{fleet_id}/members/{member_id}/":{"delete":{"description":"Kick a fleet member\n\n---\n","summary":"Kick fleet member","tags":["Fleets"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"fleet_id","in":"path","description":"ID for a fleet","required":true,"type":"integer","format":"int64"},{"name":"member_id","in":"path","description":"The character ID of a member in this fleet","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Fleet member kicked"},"404":{"description":"The fleet does not exist or you don't have access to it","schema":{"type":"object","title":"delete_fleets_fleet_id_members_member_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"delete_fleets_fleet_id_members_member_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-fleets.write_fleet.v1"]}],"operationId":"delete_fleets_fleet_id_members_member_id","x-alternate-versions":["dev","legacy","v1"]},"put":{"description":"Move a fleet member around\n\n---\n","summary":"Move fleet member","tags":["Fleets"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"fleet_id","in":"path","description":"ID for a fleet","required":true,"type":"integer","format":"int64"},{"name":"member_id","in":"path","description":"The character ID of a member in this fleet","required":true,"type":"integer","format":"int32"},{"name":"movement","in":"body","description":"Details of the invitation","required":true,"schema":{"type":"object","required":["role"],"properties":{"role":{"type":"string","description":"If a character is moved to the `fleet_commander` role, neither `wing_id` or `squad_id` should be specified. If a character is moved to the `wing_commander` role, only `wing_id` should be specified. If a character is moved to the `squad_commander` role, both `wing_id` and `squad_id` should be specified. If a character is moved to the `squad_member` role, both `wing_id` and `squad_id` should be specified.","enum":["fleet_commander","wing_commander","squad_commander","squad_member"],"title":"put_fleets_fleet_id_members_member_id_role"},"wing_id":{"type":"integer","format":"int64","minimum":0,"title":"put_fleets_fleet_id_members_member_id_wing_id","description":"wing_id integer"},"squad_id":{"type":"integer","format":"int64","minimum":0,"title":"put_fleets_fleet_id_members_member_id_squad_id","description":"squad_id integer"}},"title":"put_fleets_fleet_id_members_member_id_movement","description":"movement object"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Fleet invitation sent"},"404":{"description":"The fleet does not exist or you don't have access to it","schema":{"type":"object","title":"put_fleets_fleet_id_members_member_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"put_fleets_fleet_id_members_member_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"422":{"description":"Errors in invitation","examples":{"application/json":{"error":"missing wing_id"}},"schema":{"type":"object","properties":{"error":{"type":"string","description":"error message","title":"put_fleets_fleet_id_members_member_id_error"}},"title":"put_fleets_fleet_id_members_member_id_unprocessable_entity","description":"422 unprocessable entity object"}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-fleets.write_fleet.v1"]}],"operationId":"put_fleets_fleet_id_members_member_id","x-alternate-versions":["dev","legacy","v1"]}},"/v1/fleets/{fleet_id}/wings/":{"get":{"description":"Return information about wings in a fleet\n\n---\n\nThis route is cached for up to 5 seconds","summary":"Get fleet wings","tags":["Fleets"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"fleet_id","in":"path","description":"ID for a fleet","required":true,"type":"integer","format":"int64"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of fleet wings","examples":{"application/json":[{"name":"Wing 1","id":2073711261968,"squads":[{"name":"Squad 1","id":3129411261968}]}]},"schema":{"type":"array","maxItems":25,"items":{"type":"object","required":["name","id","squads"],"properties":{"name":{"type":"string","title":"get_fleets_fleet_id_wings_name","description":"name string"},"id":{"type":"integer","format":"int64","title":"get_fleets_fleet_id_wings_id","description":"id integer"},"squads":{"type":"array","maxItems":25,"items":{"type":"object","required":["name","id"],"properties":{"name":{"type":"string","title":"get_fleets_fleet_id_wings_name","description":"name string"},"id":{"type":"integer","format":"int64","title":"get_fleets_fleet_id_wings_id","description":"id integer"}},"title":"get_fleets_fleet_id_wings_squad","description":"squad object"},"title":"get_fleets_fleet_id_wings_squads","description":"squads array"}},"title":"get_fleets_fleet_id_wings_200_ok","description":"200 ok object"},"title":"get_fleets_fleet_id_wings_ok","description":"200 ok array"},"headers":{"Content-Language":{"description":"The language used in the response","type":"string","enum":["de","en-us","fr","ja","ru","zh"]},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"The fleet does not exist or you don't have access to it","schema":{"type":"object","title":"get_fleets_fleet_id_wings_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_fleets_fleet_id_wings_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-fleets.read_fleet.v1"]}],"operationId":"get_fleets_fleet_id_wings","x-cached-seconds":5,"x-alternate-versions":["dev","legacy","v1"]},"post":{"description":"Create a new wing in a fleet\n\n---\n","summary":"Create fleet wing","tags":["Fleets"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"fleet_id","in":"path","description":"ID for a fleet","required":true,"type":"integer","format":"int64"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"201":{"description":"Wing created","examples":{"application/json":{"wing_id":123}},"schema":{"type":"object","required":["wing_id"],"properties":{"wing_id":{"type":"integer","format":"int64","description":"The wing_id of the newly created wing","title":"post_fleets_fleet_id_wings_wing_id"}},"title":"post_fleets_fleet_id_wings_created","description":"201 created object"}},"404":{"description":"The fleet does not exist or you don't have access to it","schema":{"type":"object","title":"post_fleets_fleet_id_wings_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"post_fleets_fleet_id_wings_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-fleets.write_fleet.v1"]}],"operationId":"post_fleets_fleet_id_wings","x-alternate-versions":["dev","legacy","v1"]}},"/v1/fleets/{fleet_id}/wings/{wing_id}/":{"delete":{"description":"Delete a fleet wing, only empty wings can be deleted. The wing may contain squads, but the squads must be empty\n\n---\n","summary":"Delete fleet wing","tags":["Fleets"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"fleet_id","in":"path","description":"ID for a fleet","required":true,"type":"integer","format":"int64"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"name":"wing_id","in":"path","description":"The wing to delete","required":true,"type":"integer","format":"int64"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Wing deleted"},"404":{"description":"The fleet does not exist or you don't have access to it","schema":{"type":"object","title":"delete_fleets_fleet_id_wings_wing_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"delete_fleets_fleet_id_wings_wing_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-fleets.write_fleet.v1"]}],"operationId":"delete_fleets_fleet_id_wings_wing_id","x-alternate-versions":["dev","legacy","v1"]},"put":{"description":"Rename a fleet wing\n\n---\n","summary":"Rename fleet wing","tags":["Fleets"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"fleet_id","in":"path","description":"ID for a fleet","required":true,"type":"integer","format":"int64"},{"name":"naming","in":"body","description":"New name of the wing","required":true,"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","maxLength":10,"title":"put_fleets_fleet_id_wings_wing_id_name","description":"name string"}},"title":"put_fleets_fleet_id_wings_wing_id_naming","description":"naming object"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"name":"wing_id","in":"path","description":"The wing to rename","required":true,"type":"integer","format":"int64"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Wing renamed"},"404":{"description":"The fleet does not exist or you don't have access to it","schema":{"type":"object","title":"put_fleets_fleet_id_wings_wing_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"put_fleets_fleet_id_wings_wing_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-fleets.write_fleet.v1"]}],"operationId":"put_fleets_fleet_id_wings_wing_id","x-alternate-versions":["dev","legacy","v1"]}},"/v1/fleets/{fleet_id}/wings/{wing_id}/squads/":{"post":{"description":"Create a new squad in a fleet\n\n---\n","summary":"Create fleet squad","tags":["Fleets"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"fleet_id","in":"path","description":"ID for a fleet","required":true,"type":"integer","format":"int64"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"name":"wing_id","in":"path","description":"The wing_id to create squad in","required":true,"type":"integer","format":"int64"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"201":{"description":"Squad created","examples":{"application/json":{"squad_id":123}},"schema":{"type":"object","required":["squad_id"],"properties":{"squad_id":{"type":"integer","format":"int64","description":"The squad_id of the newly created squad","title":"post_fleets_fleet_id_wings_wing_id_squads_squad_id"}},"title":"post_fleets_fleet_id_wings_wing_id_squads_created","description":"201 created object"}},"404":{"description":"The fleet does not exist or you don't have access to it","schema":{"type":"object","title":"post_fleets_fleet_id_wings_wing_id_squads_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"post_fleets_fleet_id_wings_wing_id_squads_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-fleets.write_fleet.v1"]}],"operationId":"post_fleets_fleet_id_wings_wing_id_squads","x-alternate-versions":["dev","legacy","v1"]}},"/v1/fleets/{fleet_id}/squads/{squad_id}/":{"delete":{"description":"Delete a fleet squad, only empty squads can be deleted\n\n---\n","summary":"Delete fleet squad","tags":["Fleets"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"fleet_id","in":"path","description":"ID for a fleet","required":true,"type":"integer","format":"int64"},{"name":"squad_id","in":"path","description":"The squad to delete","required":true,"type":"integer","format":"int64"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Squad deleted"},"404":{"description":"The fleet does not exist or you don't have access to it","schema":{"type":"object","title":"delete_fleets_fleet_id_squads_squad_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"delete_fleets_fleet_id_squads_squad_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-fleets.write_fleet.v1"]}],"operationId":"delete_fleets_fleet_id_squads_squad_id","x-alternate-versions":["dev","legacy","v1"]},"put":{"description":"Rename a fleet squad\n\n---\n","summary":"Rename fleet squad","tags":["Fleets"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"fleet_id","in":"path","description":"ID for a fleet","required":true,"type":"integer","format":"int64"},{"name":"naming","in":"body","description":"New name of the squad","required":true,"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","maxLength":10,"title":"put_fleets_fleet_id_squads_squad_id_name","description":"name string"}},"title":"put_fleets_fleet_id_squads_squad_id_naming","description":"naming object"}},{"name":"squad_id","in":"path","description":"The squad to rename","required":true,"type":"integer","format":"int64"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Squad renamed"},"404":{"description":"The fleet does not exist or you don't have access to it","schema":{"type":"object","title":"put_fleets_fleet_id_squads_squad_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"put_fleets_fleet_id_squads_squad_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-fleets.write_fleet.v1"]}],"operationId":"put_fleets_fleet_id_squads_squad_id","x-alternate-versions":["dev","legacy","v1"]}},"/v1/incursions/":{"get":{"description":"Return a list of current incursions\n\n---\n\nThis route is cached for up to 300 seconds","summary":"List incursions","tags":["Incursions"],"responses":{"200":{"description":"A list of incursions","examples":{"application/json":[{"type":"Incursion","state":"mobilizing","influence":0.9,"has_boss":true,"faction_id":500019,"constellation_id":20000607,"staging_solar_system_id":30004154,"infested_solar_systems":[30004148,30004149,30004150,30004151,30004152,30004153,30004154]}]},"schema":{"type":"array","maxItems":100,"items":{"type":"object","required":["type","state","influence","has_boss","faction_id","constellation_id","staging_solar_system_id","infested_solar_systems"],"properties":{"type":{"type":"string","description":"The type of this incursion","title":"get_incursions_type"},"state":{"type":"string","enum":["withdrawing","mobilizing","established"],"description":"The state of this incursion","title":"get_incursions_state"},"influence":{"type":"number","format":"float","description":"Influence of this incursion as a float from 0 to 1","title":"get_incursions_influence"},"has_boss":{"type":"boolean","description":"Whether the final encounter has boss or not","title":"get_incursions_has_boss"},"faction_id":{"type":"integer","format":"int32","description":"The attacking faction's id","title":"get_incursions_faction_id"},"constellation_id":{"type":"integer","format":"int32","description":"The constellation id in which this incursion takes place","title":"get_incursions_constellation_id"},"staging_solar_system_id":{"type":"integer","format":"int32","description":"Staging solar system for this incursion","title":"get_incursions_staging_solar_system_id"},"infested_solar_systems":{"type":"array","description":"A list of infested solar system ids that are a part of this incursion","maxItems":100,"items":{"type":"integer","format":"int32","title":"get_incursions_infested_solar_system","description":"infested_solar_system integer"},"title":"get_incursions_infested_solar_systems"}},"title":"get_incursions_200_ok","description":"200 ok object"},"title":"get_incursions_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_incursions","x-cached-seconds":300,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/industry/facilities/":{"get":{"description":"Return a list of industry facilities\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"List industry facilities","tags":["Industry"],"responses":{"200":{"description":"A list of facilities","examples":{"application/json":[{"facility_id":60012544,"tax":0.1,"owner_id":1000126,"type_id":2502,"solar_system_id":30000032,"region_id":10000001}]},"schema":{"type":"array","maxItems":10000,"items":{"type":"object","required":["facility_id","owner_id","type_id","solar_system_id","region_id"],"properties":{"facility_id":{"type":"integer","format":"int64","description":"ID of the facility","title":"get_industry_facilities_facility_id"},"tax":{"type":"number","format":"float","description":"Tax imposed by the facility","title":"get_industry_facilities_tax"},"owner_id":{"type":"integer","format":"int32","description":"Owner of the facility","title":"get_industry_facilities_owner_id"},"type_id":{"type":"integer","format":"int32","description":"Type ID of the facility","title":"get_industry_facilities_type_id"},"solar_system_id":{"type":"integer","format":"int32","description":"Solar system ID where the facility is","title":"get_industry_facilities_solar_system_id"},"region_id":{"type":"integer","format":"int32","description":"Region ID where the facility is","title":"get_industry_facilities_region_id"}},"title":"get_industry_facilities_200_ok","description":"200 ok object"},"title":"get_industry_facilities_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_industry_facilities","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/industry/systems/":{"get":{"description":"Return cost indices for solar systems\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"List solar system cost indices","tags":["Industry"],"responses":{"200":{"description":"A list of cost indicies","examples":{"application/json":[{"solar_system_id":30011392,"cost_indices":[{"activity":"invention","cost_index":0.0048}]}]},"schema":{"type":"array","maxItems":10000,"items":{"type":"object","required":["solar_system_id","cost_indices"],"properties":{"solar_system_id":{"type":"integer","format":"int32","title":"get_industry_systems_solar_system_id","description":"solar_system_id integer"},"cost_indices":{"type":"array","maxItems":10,"items":{"type":"object","required":["activity","cost_index"],"properties":{"activity":{"type":"string","enum":["copying","duplicating","invention","manufacturing","none","reaction","researching_material_efficiency","researching_technology","researching_time_efficiency","reverse_engineering"],"title":"get_industry_systems_activity","description":"activity string"},"cost_index":{"type":"number","format":"float","title":"get_industry_systems_cost_index","description":"cost_index number"}},"title":"get_industry_systems_cost_indice","description":"cost_indice object"},"title":"get_industry_systems_cost_indices","description":"cost_indices array"}},"title":"get_industry_systems_200_ok","description":"200 ok object"},"title":"get_industry_systems_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_industry_systems","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/industry/jobs/":{"get":{"summary":"List character industry jobs","description":"List industry jobs placed by a character\n\n---\n\nThis route is cached for up to 300 seconds","tags":["Industry"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"name":"include_completed","in":"query","description":"Whether retrieve completed character industry jobs as well","required":false,"type":"boolean"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Industry jobs placed by a character","examples":{"application/json":[{"job_id":229136101,"installer_id":498338451,"facility_id":60006382,"station_id":60006382,"activity_id":1,"blueprint_id":1015116533326,"blueprint_type_id":2047,"blueprint_location_id":60006382,"output_location_id":60006382,"runs":1,"cost":118.01,"licensed_runs":200,"status":"active","duration":548,"start_date":"2014-07-19T15:47:06Z","end_date":"2014-07-19T15:56:14Z"}]},"schema":{"type":"array","maxItems":2000,"items":{"type":"object","required":["job_id","installer_id","facility_id","station_id","activity_id","blueprint_id","blueprint_type_id","blueprint_location_id","output_location_id","runs","status","duration","start_date","end_date"],"properties":{"job_id":{"type":"integer","format":"int32","description":"Unique job ID","title":"get_characters_character_id_industry_jobs_job_id"},"installer_id":{"type":"integer","format":"int32","description":"ID of the character which installed this job","title":"get_characters_character_id_industry_jobs_installer_id"},"facility_id":{"type":"integer","format":"int64","description":"ID of the facility where this job is running","title":"get_characters_character_id_industry_jobs_facility_id"},"station_id":{"type":"integer","format":"int64","description":"ID of the station where industry facility is located","title":"get_characters_character_id_industry_jobs_station_id"},"activity_id":{"type":"integer","format":"int32","description":"Job activity ID","title":"get_characters_character_id_industry_jobs_activity_id"},"blueprint_id":{"type":"integer","format":"int64","title":"get_characters_character_id_industry_jobs_blueprint_id","description":"blueprint_id integer"},"blueprint_type_id":{"type":"integer","format":"int32","title":"get_characters_character_id_industry_jobs_blueprint_type_id","description":"blueprint_type_id integer"},"blueprint_location_id":{"type":"integer","format":"int64","description":"Location ID of the location from which the blueprint was installed. Normally a station ID, but can also be an asset (e.g. container) or corporation facility","title":"get_characters_character_id_industry_jobs_blueprint_location_id"},"output_location_id":{"type":"integer","format":"int64","description":"Location ID of the location to which the output of the job will be delivered. Normally a station ID, but can also be a corporation facility","title":"get_characters_character_id_industry_jobs_output_location_id"},"runs":{"type":"integer","format":"int32","description":"Number of runs for a manufacturing job, or number of copies to make for a blueprint copy","title":"get_characters_character_id_industry_jobs_runs"},"cost":{"type":"number","format":"double","description":"The sume of job installation fee and industry facility tax","title":"get_characters_character_id_industry_jobs_cost"},"licensed_runs":{"type":"integer","format":"int32","description":"Number of runs blueprint is licensed for","title":"get_characters_character_id_industry_jobs_licensed_runs"},"probability":{"type":"number","format":"float","description":"Chance of success for invention","title":"get_characters_character_id_industry_jobs_probability"},"product_type_id":{"type":"integer","format":"int32","description":"Type ID of product (manufactured, copied or invented)","title":"get_characters_character_id_industry_jobs_product_type_id"},"status":{"type":"string","enum":["active","cancelled","delivered","paused","ready","reverted"],"title":"get_characters_character_id_industry_jobs_status","description":"status string"},"duration":{"type":"integer","format":"int32","description":"Job duration in seconds","title":"get_characters_character_id_industry_jobs_duration"},"start_date":{"type":"string","format":"date-time","description":"Date and time when this job started","title":"get_characters_character_id_industry_jobs_start_date"},"end_date":{"type":"string","format":"date-time","description":"Date and time when this job finished","title":"get_characters_character_id_industry_jobs_end_date"},"pause_date":{"type":"string","format":"date-time","description":"Date and time when this job was paused (i.e. time when the facility where this job was installed went offline)","title":"get_characters_character_id_industry_jobs_pause_date"},"completed_date":{"type":"string","format":"date-time","description":"Date and time when this job was completed","title":"get_characters_character_id_industry_jobs_completed_date"},"completed_character_id":{"type":"integer","format":"int32","description":"ID of the character which completed this job","title":"get_characters_character_id_industry_jobs_completed_character_id"},"successful_runs":{"type":"integer","format":"int32","description":"Number of successful runs for this job. Equal to runs unless this is an invention job","title":"get_characters_character_id_industry_jobs_successful_runs"}},"title":"get_characters_character_id_industry_jobs_200_ok","description":"200 ok object"},"title":"get_characters_character_id_industry_jobs_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-industry.read_character_jobs.v1"]}],"operationId":"get_characters_character_id_industry_jobs","x-cached-seconds":300,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/mining/":{"get":{"summary":"Character mining ledger","description":"Paginated record of all mining done by a character for the past 30 days\n\n---\n\nThis route is cached for up to 600 seconds","tags":["Industry"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Mining ledger of a character","examples":{"application/json":[{"date":"2017-09-19","solar_system_id":30003707,"type_id":17471,"quantity":7004},{"date":"2017-09-18","solar_system_id":30003707,"type_id":17471,"quantity":5199}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["date","solar_system_id","type_id","quantity"],"properties":{"date":{"type":"string","format":"date","title":"get_characters_character_id_mining_date","description":"date string"},"solar_system_id":{"type":"integer","format":"int32","title":"get_characters_character_id_mining_solar_system_id","description":"solar_system_id integer"},"type_id":{"type":"integer","format":"int32","title":"get_characters_character_id_mining_type_id","description":"type_id integer"},"quantity":{"type":"integer","format":"int64","title":"get_characters_character_id_mining_quantity","description":"quantity integer"}},"title":"get_characters_character_id_mining_200_ok","description":"200 ok object"},"title":"get_characters_character_id_mining_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-industry.read_character_mining.v1"]}],"operationId":"get_characters_character_id_mining","x-cached-seconds":600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporation/{corporation_id}/mining/observers/":{"get":{"summary":"Corporation mining observers","description":"Paginated list of all entities capable of observing and recording mining for a corporation\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Accountant","tags":["Industry"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Observer list of a corporation","examples":{"application/json":[{"last_updated":"2017-09-19","observer_id":1,"observer_type":"structure"}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["last_updated","observer_id","observer_type"],"properties":{"last_updated":{"type":"string","format":"date","title":"get_corporation_corporation_id_mining_observers_last_updated","description":"last_updated string"},"observer_id":{"type":"integer","format":"int64","description":"The entity that was observing the asteroid field when it was mined.\n","title":"get_corporation_corporation_id_mining_observers_observer_id"},"observer_type":{"description":"The category of the observing entity","type":"string","enum":["structure"],"title":"get_corporation_corporation_id_mining_observers_observer_type"}},"title":"get_corporation_corporation_id_mining_observers_200_ok","description":"200 ok object"},"title":"get_corporation_corporation_id_mining_observers_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Accountant"],"security":[{"evesso":["esi-industry.read_corporation_mining.v1"]}],"operationId":"get_corporation_corporation_id_mining_observers","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporation/{corporation_id}/mining/observers/{observer_id}/":{"get":{"summary":"Observed corporation mining","description":"Paginated record of all mining seen by an observer\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Accountant","tags":["Industry"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"name":"observer_id","in":"path","description":"A mining observer id","required":true,"type":"integer","format":"int64"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Mining ledger of an observer","examples":{"application/json":[{"last_updated":"2017-09-19","character_id":95465499,"recorded_corporation_id":109299958,"type_id":1230,"quantity":500}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["last_updated","character_id","recorded_corporation_id","type_id","quantity"],"properties":{"last_updated":{"type":"string","format":"date","title":"get_corporation_corporation_id_mining_observers_observer_id_last_updated","description":"last_updated string"},"character_id":{"type":"integer","format":"int32","description":"The character that did the mining\n","title":"get_corporation_corporation_id_mining_observers_observer_id_character_id"},"recorded_corporation_id":{"description":"The corporation id of the character at the time data was recorded.\n","type":"integer","format":"int32","title":"get_corporation_corporation_id_mining_observers_observer_id_recorded_corporation_id"},"type_id":{"type":"integer","format":"int32","title":"get_corporation_corporation_id_mining_observers_observer_id_type_id","description":"type_id integer"},"quantity":{"type":"integer","format":"int64","title":"get_corporation_corporation_id_mining_observers_observer_id_quantity","description":"quantity integer"}},"title":"get_corporation_corporation_id_mining_observers_observer_id_200_ok","description":"200 ok object"},"title":"get_corporation_corporation_id_mining_observers_observer_id_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Accountant"],"security":[{"evesso":["esi-industry.read_corporation_mining.v1"]}],"operationId":"get_corporation_corporation_id_mining_observers_observer_id","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/industry/jobs/":{"get":{"summary":"List corporation industry jobs","description":"List industry jobs run by a corporation\n\n---\n\nThis route is cached for up to 300 seconds\n\n---\nRequires one of the following EVE corporation role(s): FactoryManager","tags":["Industry"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"name":"include_completed","in":"query","description":"Whether retrieve completed industry jobs as well","required":false,"type":"boolean","default":false},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of corporation industry jobs","examples":{"application/json":[{"job_id":229136101,"installer_id":498338451,"facility_id":60006382,"location_id":60006382,"activity_id":1,"blueprint_id":1015116533326,"blueprint_type_id":2047,"blueprint_location_id":60006382,"output_location_id":60006382,"runs":1,"cost":118.01,"licensed_runs":200,"status":"active","duration":548,"start_date":"2014-07-19T15:47:06Z","end_date":"2014-07-19T15:56:14Z"}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["job_id","installer_id","facility_id","location_id","activity_id","blueprint_id","blueprint_type_id","blueprint_location_id","output_location_id","runs","status","duration","start_date","end_date"],"properties":{"job_id":{"type":"integer","format":"int32","description":"Unique job ID","title":"get_corporations_corporation_id_industry_jobs_job_id"},"installer_id":{"type":"integer","format":"int32","description":"ID of the character which installed this job","title":"get_corporations_corporation_id_industry_jobs_installer_id"},"facility_id":{"type":"integer","format":"int64","description":"ID of the facility where this job is running","title":"get_corporations_corporation_id_industry_jobs_facility_id"},"location_id":{"type":"integer","format":"int64","description":"ID of the location for the industry facility","title":"get_corporations_corporation_id_industry_jobs_location_id"},"activity_id":{"type":"integer","format":"int32","description":"Job activity ID","title":"get_corporations_corporation_id_industry_jobs_activity_id"},"blueprint_id":{"type":"integer","format":"int64","title":"get_corporations_corporation_id_industry_jobs_blueprint_id","description":"blueprint_id integer"},"blueprint_type_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_industry_jobs_blueprint_type_id","description":"blueprint_type_id integer"},"blueprint_location_id":{"type":"integer","format":"int64","description":"Location ID of the location from which the blueprint was installed. Normally a station ID, but can also be an asset (e.g. container) or corporation facility","title":"get_corporations_corporation_id_industry_jobs_blueprint_location_id"},"output_location_id":{"type":"integer","format":"int64","description":"Location ID of the location to which the output of the job will be delivered. Normally a station ID, but can also be a corporation facility","title":"get_corporations_corporation_id_industry_jobs_output_location_id"},"runs":{"type":"integer","format":"int32","description":"Number of runs for a manufacturing job, or number of copies to make for a blueprint copy","title":"get_corporations_corporation_id_industry_jobs_runs"},"cost":{"type":"number","format":"double","description":"The sume of job installation fee and industry facility tax","title":"get_corporations_corporation_id_industry_jobs_cost"},"licensed_runs":{"type":"integer","format":"int32","description":"Number of runs blueprint is licensed for","title":"get_corporations_corporation_id_industry_jobs_licensed_runs"},"probability":{"type":"number","format":"float","description":"Chance of success for invention","title":"get_corporations_corporation_id_industry_jobs_probability"},"product_type_id":{"type":"integer","format":"int32","description":"Type ID of product (manufactured, copied or invented)","title":"get_corporations_corporation_id_industry_jobs_product_type_id"},"status":{"type":"string","enum":["active","cancelled","delivered","paused","ready","reverted"],"title":"get_corporations_corporation_id_industry_jobs_status","description":"status string"},"duration":{"type":"integer","format":"int32","description":"Job duration in seconds","title":"get_corporations_corporation_id_industry_jobs_duration"},"start_date":{"type":"string","format":"date-time","description":"Date and time when this job started","title":"get_corporations_corporation_id_industry_jobs_start_date"},"end_date":{"type":"string","format":"date-time","description":"Date and time when this job finished","title":"get_corporations_corporation_id_industry_jobs_end_date"},"pause_date":{"type":"string","format":"date-time","description":"Date and time when this job was paused (i.e. time when the facility where this job was installed went offline)","title":"get_corporations_corporation_id_industry_jobs_pause_date"},"completed_date":{"type":"string","format":"date-time","description":"Date and time when this job was completed","title":"get_corporations_corporation_id_industry_jobs_completed_date"},"completed_character_id":{"type":"integer","format":"int32","description":"ID of the character which completed this job","title":"get_corporations_corporation_id_industry_jobs_completed_character_id"},"successful_runs":{"type":"integer","format":"int32","description":"Number of successful runs for this job. Equal to runs unless this is an invention job","title":"get_corporations_corporation_id_industry_jobs_successful_runs"}},"title":"get_corporations_corporation_id_industry_jobs_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_industry_jobs_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["FactoryManager"],"security":[{"evesso":["esi-industry.read_corporation_jobs.v1"]}],"operationId":"get_corporations_corporation_id_industry_jobs","x-cached-seconds":300,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporation/{corporation_id}/mining/extractions/":{"get":{"summary":"Moon extraction timers","description":"Extraction timers for all moon chunks being extracted by refineries belonging to a corporation.\n\n---\n\nThis route is cached for up to 1800 seconds\n\n---\nRequires one of the following EVE corporation role(s): Structure_manager","tags":["Industry"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of chunk timers","examples":{"application/json":[{"structure_id":1000000010579,"moon_id":40307229,"extraction_start_time":"2017-10-11T10:37:04Z","chunk_arrival_time":"2017-10-17T11:00:59Z","natural_decay_time":"2017-10-17T14:00:59Z"}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["structure_id","moon_id","extraction_start_time","chunk_arrival_time","natural_decay_time"],"properties":{"structure_id":{"type":"integer","format":"int64","title":"get_corporation_corporation_id_mining_extractions_structure_id","description":"structure_id integer"},"moon_id":{"type":"integer","format":"int32","title":"get_corporation_corporation_id_mining_extractions_moon_id","description":"moon_id integer"},"extraction_start_time":{"description":"The time at which the current extraction was initiated.\n","type":"string","format":"date-time","title":"get_corporation_corporation_id_mining_extractions_extraction_start_time"},"chunk_arrival_time":{"description":"The time at which the chunk being extracted will arrive and can be fractured by the moon mining drill.\n","type":"string","format":"date-time","title":"get_corporation_corporation_id_mining_extractions_chunk_arrival_time"},"natural_decay_time":{"description":"The time at which the chunk being extracted will naturally fracture if it is not first fractured by the moon mining drill.\n","type":"string","format":"date-time","title":"get_corporation_corporation_id_mining_extractions_natural_decay_time"}},"title":"get_corporation_corporation_id_mining_extractions_200_ok","description":"200 ok object"},"title":"get_corporation_corporation_id_mining_extractions_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Structure_manager"],"security":[{"evesso":["esi-industry.read_corporation_mining.v1"]}],"operationId":"get_corporation_corporation_id_mining_extractions","x-cached-seconds":1800,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/insurance/prices/":{"get":{"description":"Return available insurance levels for all ship types\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"List insurance levels","tags":["Insurance"],"responses":{"200":{"description":"A list of insurance levels for all ship types","examples":{"application/json":[{"type_id":1,"levels":[{"cost":10.01,"payout":20.01,"name":"Basic"}]}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["type_id","levels"],"properties":{"type_id":{"type":"integer","format":"int32","title":"get_insurance_prices_type_id","description":"type_id integer"},"levels":{"type":"array","description":"A list of a available insurance levels for this ship type","maxItems":6,"items":{"type":"object","required":["cost","payout","name"],"properties":{"cost":{"type":"number","format":"float","title":"get_insurance_prices_cost","description":"cost number"},"payout":{"type":"number","format":"float","title":"get_insurance_prices_payout","description":"payout number"},"name":{"type":"string","description":"Localized insurance level","title":"get_insurance_prices_name"}},"title":"get_insurance_prices_level","description":"level object"},"title":"get_insurance_prices_levels"}},"title":"get_insurance_prices_200_ok","description":"200 ok object"},"title":"get_insurance_prices_ok","description":"200 ok array"},"headers":{"Content-Language":{"description":"The language used in the response","type":"string","enum":["de","en-us","fr","ja","ru","zh"]},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_insurance_prices","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/killmails/{killmail_id}/{killmail_hash}/":{"get":{"description":"Return a single killmail from its ID and hash\n\n---\n\nThis route is cached for up to 1209600 seconds","summary":"Get a single killmail","tags":["Killmails"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"killmail_hash","in":"path","description":"The killmail hash for verification","required":true,"type":"string"},{"name":"killmail_id","in":"path","description":"The killmail ID to be queried","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A killmail","examples":{"application/json":{"solar_system_id":30002976,"killmail_id":56733821,"killmail_time":"2016-10-22T17:13:36Z","attackers":[{"ship_type_id":17841,"faction_id":500003,"corporation_id":1000179,"character_id":95810944,"weapon_type_id":3074,"final_blow":true,"security_status":-0.3,"damage_done":5745}],"victim":{"alliance_id":621338554,"damage_taken":5745,"items":[{"singleton":0,"item_type_id":5973,"flag":20,"quantity_dropped":1}],"character_id":92796241,"ship_type_id":17812,"corporation_id":841363671,"position":{"y":146704961490.90222,"x":452186600569.4748,"z":109514596532.54477}}}},"schema":{"type":"object","required":["killmail_id","killmail_time","victim","attackers","solar_system_id"],"properties":{"killmail_id":{"type":"integer","format":"int32","description":"ID of the killmail","title":"get_killmails_killmail_id_killmail_hash_killmail_id"},"killmail_time":{"type":"string","format":"date-time","description":"Time that the victim was killed and the killmail generated\n","title":"get_killmails_killmail_id_killmail_hash_killmail_time"},"victim":{"type":"object","required":["damage_taken","ship_type_id"],"properties":{"character_id":{"type":"integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_character_id","description":"character_id integer"},"corporation_id":{"type":"integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_corporation_id","description":"corporation_id integer"},"alliance_id":{"type":"integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_alliance_id","description":"alliance_id integer"},"faction_id":{"type":"integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_faction_id","description":"faction_id integer"},"damage_taken":{"type":"integer","description":"How much total damage was taken by the victim\n","format":"int32","title":"get_killmails_killmail_id_killmail_hash_damage_taken"},"ship_type_id":{"type":"integer","format":"int32","description":"The ship that the victim was piloting and was destroyed\n","title":"get_killmails_killmail_id_killmail_hash_ship_type_id"},"items":{"type":"array","maxItems":10000,"items":{"type":"object","required":["item_type_id","singleton","flag"],"properties":{"item_type_id":{"type":"integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_item_type_id","description":"item_type_id integer"},"quantity_destroyed":{"type":"integer","description":"How many of the item were destroyed if any\n","format":"int64","title":"get_killmails_killmail_id_killmail_hash_quantity_destroyed"},"quantity_dropped":{"type":"integer","description":"How many of the item were dropped if any\n","format":"int64","title":"get_killmails_killmail_id_killmail_hash_quantity_dropped"},"singleton":{"type":"integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_singleton","description":"singleton integer"},"flag":{"type":"integer","description":"Flag for the location of the item\n","format":"int32","title":"get_killmails_killmail_id_killmail_hash_flag"},"items":{"type":"array","maxItems":10000,"items":{"type":"object","required":["item_type_id","singleton","flag"],"properties":{"item_type_id":{"type":"integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_item_type_id","description":"item_type_id integer"},"quantity_destroyed":{"type":"integer","format":"int64","title":"get_killmails_killmail_id_killmail_hash_quantity_destroyed","description":"quantity_destroyed integer"},"quantity_dropped":{"type":"integer","format":"int64","title":"get_killmails_killmail_id_killmail_hash_quantity_dropped","description":"quantity_dropped integer"},"singleton":{"type":"integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_singleton","description":"singleton integer"},"flag":{"type":"integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_flag","description":"flag integer"}},"title":"get_killmails_killmail_id_killmail_hash_item","description":"item object"},"title":"get_killmails_killmail_id_killmail_hash_items","description":"items array"}},"title":"get_killmails_killmail_id_killmail_hash_item","description":"item object"},"title":"get_killmails_killmail_id_killmail_hash_items","description":"items array"},"position":{"type":"object","description":"Coordinates of the victim in Cartesian space relative to the Sun\n","required":["x","y","z"],"properties":{"x":{"type":"number","format":"double","title":"get_killmails_killmail_id_killmail_hash_x","description":"x number"},"y":{"type":"number","format":"double","title":"get_killmails_killmail_id_killmail_hash_y","description":"y number"},"z":{"type":"number","format":"double","title":"get_killmails_killmail_id_killmail_hash_z","description":"z number"}},"title":"get_killmails_killmail_id_killmail_hash_position"}},"title":"get_killmails_killmail_id_killmail_hash_victim","description":"victim object"},"attackers":{"type":"array","maxItems":10000,"items":{"type":"object","required":["security_status","final_blow","damage_done"],"properties":{"character_id":{"type":"integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_character_id","description":"character_id integer"},"corporation_id":{"type":"integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_corporation_id","description":"corporation_id integer"},"alliance_id":{"type":"integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_alliance_id","description":"alliance_id integer"},"faction_id":{"type":"integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_faction_id","description":"faction_id integer"},"security_status":{"type":"number","format":"float","description":"Security status for the attacker\n","title":"get_killmails_killmail_id_killmail_hash_security_status"},"final_blow":{"type":"boolean","description":"Was the attacker the one to achieve the final blow\n","title":"get_killmails_killmail_id_killmail_hash_final_blow"},"damage_done":{"type":"integer","format":"int32","title":"get_killmails_killmail_id_killmail_hash_damage_done","description":"damage_done integer"},"ship_type_id":{"type":"integer","format":"int32","description":"What ship was the attacker flying\n","title":"get_killmails_killmail_id_killmail_hash_ship_type_id"},"weapon_type_id":{"type":"integer","format":"int32","description":"What weapon was used by the attacker for the kill\n","title":"get_killmails_killmail_id_killmail_hash_weapon_type_id"}},"title":"get_killmails_killmail_id_killmail_hash_attacker","description":"attacker object"},"title":"get_killmails_killmail_id_killmail_hash_attackers","description":"attackers array"},"solar_system_id":{"type":"integer","format":"int32","description":"Solar system that the kill took place in\n","title":"get_killmails_killmail_id_killmail_hash_solar_system_id"},"moon_id":{"type":"integer","format":"int32","description":"Moon if the kill took place at one","title":"get_killmails_killmail_id_killmail_hash_moon_id"},"war_id":{"type":"integer","format":"int32","description":"War if the killmail is generated in relation to an official war\n","title":"get_killmails_killmail_id_killmail_hash_war_id"}},"title":"get_killmails_killmail_id_killmail_hash_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"422":{"description":"Invalid killmail_id and/or killmail_hash","schema":{"type":"object","title":"get_killmails_killmail_id_killmail_hash_unprocessable_entity","description":"Unprocessable entity","properties":{"error":{"type":"string","description":"Unprocessable entity message","title":"get_killmails_killmail_id_killmail_hash_422_unprocessable_entity"}}},"examples":{"application/json":{"error":"Unprocessable entity message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_killmails_killmail_id_killmail_hash","x-cached-seconds":1209600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/killmails/recent/":{"get":{"description":"Return a list of character's recent kills and losses\n\n---\n\nThis route is cached for up to 120 seconds","summary":"Get character kills and losses","tags":["Killmails"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"name":"max_count","in":"query","description":"How many killmails to return at maximum","type":"integer","format":"int32","required":false,"default":50,"maximum":5000},{"name":"max_kill_id","in":"query","description":"Only return killmails with ID smaller than this.\n","required":false,"type":"integer","format":"int32"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of killmail IDs and hashes","examples":{"application/json":[{"killmail_id":2,"killmail_hash":"8eef5e8fb6b88fe3407c489df33822b2e3b57a5e"},{"killmail_id":1,"killmail_hash":"b41ccb498ece33d64019f64c0db392aa3aa701fb"}]},"schema":{"type":"array","maxItems":5000,"items":{"type":"object","required":["killmail_id","killmail_hash"],"properties":{"killmail_id":{"type":"integer","format":"int32","description":"ID of this killmail","title":"get_characters_character_id_killmails_recent_killmail_id"},"killmail_hash":{"type":"string","description":"A hash of this killmail","title":"get_characters_character_id_killmails_recent_killmail_hash"}},"title":"get_characters_character_id_killmails_recent_200_ok","description":"200 ok object"},"title":"get_characters_character_id_killmails_recent_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-killmails.read_killmails.v1"]}],"operationId":"get_characters_character_id_killmails_recent","x-cached-seconds":120,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/killmails/recent/":{"get":{"description":"Get a list of corporation's recent kills and losses\n\n---\n\nThis route is cached for up to 300 seconds\n\n---\nRequires one of the following EVE corporation role(s): Director","summary":"Get corporation kills and losses","tags":["Killmails"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"name":"max_kill_id","in":"query","description":"Only return killmails with ID smaller than this","required":false,"type":"integer","format":"int32"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of killmail IDs and hashes","examples":{"application/json":[{"killmail_id":2,"killmail_hash":"8eef5e8fb6b88fe3407c489df33822b2e3b57a5e"},{"killmail_id":1,"killmail_hash":"b41ccb498ece33d64019f64c0db392aa3aa701fb"}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["killmail_id","killmail_hash"],"properties":{"killmail_id":{"type":"integer","format":"int32","description":"ID of this killmail","title":"get_corporations_corporation_id_killmails_recent_killmail_id"},"killmail_hash":{"type":"string","description":"A hash of this killmail","title":"get_corporations_corporation_id_killmails_recent_killmail_hash"}},"title":"get_corporations_corporation_id_killmails_recent_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_killmails_recent_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Director"],"security":[{"evesso":["esi-killmails.read_corporation_killmails.v1"]}],"operationId":"get_corporations_corporation_id_killmails_recent","x-cached-seconds":300,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/location/":{"get":{"description":"Information about the characters current location. Returns the current solar system id, and also the current station or structure ID if applicable.\n\n---\n\nThis route is cached for up to 5 seconds","summary":"Get character location","tags":["Location"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about the characters current location. Returns the current solar system id, and also the current station or structure ID if applicable.","examples":{"application/json":{"solar_system_id":30002505,"structure_id":1000000016989}},"schema":{"type":"object","required":["solar_system_id"],"properties":{"solar_system_id":{"type":"integer","format":"int32","title":"get_characters_character_id_location_solar_system_id","description":"solar_system_id integer"},"station_id":{"type":"integer","format":"int32","title":"get_characters_character_id_location_station_id","description":"station_id integer"},"structure_id":{"type":"integer","format":"int64","title":"get_characters_character_id_location_structure_id","description":"structure_id integer"}},"title":"get_characters_character_id_location_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-location.read_location.v1"]}],"operationId":"get_characters_character_id_location","x-cached-seconds":5,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/ship/":{"get":{"description":"Get the current ship type, name and id\n\n---\n\nThis route is cached for up to 5 seconds","summary":"Get current ship","tags":["Location"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Get the current ship type, name and id","examples":{"application/json":{"ship_type_id":1233,"ship_name":"SPACESHIPS!!!","ship_item_id":1000000016991}},"schema":{"type":"object","required":["ship_type_id","ship_item_id","ship_name"],"properties":{"ship_type_id":{"type":"integer","format":"int32","title":"get_characters_character_id_ship_ship_type_id","description":"ship_type_id integer"},"ship_item_id":{"type":"integer","format":"int64","description":"Item id's are unique to a ship and persist until it is repackaged. This value can be used to track repeated uses of a ship, or detect when a pilot changes into a different instance of the same ship type.","title":"get_characters_character_id_ship_ship_item_id"},"ship_name":{"type":"string","title":"get_characters_character_id_ship_ship_name","description":"ship_name string"}},"title":"get_characters_character_id_ship_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-location.read_ship_type.v1"]}],"operationId":"get_characters_character_id_ship","x-cached-seconds":5,"x-alternate-versions":["dev","legacy","v1"]}},"/v2/characters/{character_id}/online/":{"get":{"description":"Checks if the character is currently online\n\n---\n\nThis route is cached for up to 60 seconds","summary":"Get character online","tags":["Location"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Object describing the character's online status","examples":{"application/json":{"online":true,"last_login":"2017-01-02T03:04:05Z","last_logout":"2017-01-02T04:05:06Z","logins":9001}},"schema":{"type":"object","required":["online"],"properties":{"online":{"type":"boolean","description":"If the character is online","title":"get_characters_character_id_online_online"},"last_login":{"type":"string","format":"date-time","description":"Timestamp of the last login","title":"get_characters_character_id_online_last_login"},"last_logout":{"type":"string","format":"date-time","description":"Timestamp of the last logout","title":"get_characters_character_id_online_last_logout"},"logins":{"type":"integer","format":"int32","description":"Total number of times the character has logged in","title":"get_characters_character_id_online_logins"}},"title":"get_characters_character_id_online_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-location.read_online.v1"]}],"operationId":"get_characters_character_id_online","x-cached-seconds":60,"x-alternate-versions":["dev","v2"]}},"/v1/loyalty/stores/{corporation_id}/offers/":{"get":{"description":"Return a list of offers from a specific corporation's loyalty store\n\n---\n\nThis route expires daily at 11:05","summary":"List loyalty store offers","tags":["Loyalty"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of offers","examples":{"application/json":[{"offer_id":1,"type_id":123,"quantity":1,"lp_cost":100,"isk_cost":0,"ak_cost":35000,"required_items":[]},{"offer_id":2,"type_id":1235,"quantity":10,"lp_cost":100,"isk_cost":1000,"required_items":[{"type_id":1234,"quantity":10}]}]},"schema":{"type":"array","maxItems":10000,"items":{"type":"object","required":["offer_id","type_id","quantity","lp_cost","isk_cost","required_items"],"properties":{"offer_id":{"type":"integer","format":"int32","title":"get_loyalty_stores_corporation_id_offers_offer_id","description":"offer_id integer"},"type_id":{"type":"integer","format":"int32","title":"get_loyalty_stores_corporation_id_offers_type_id","description":"type_id integer"},"quantity":{"type":"integer","format":"int32","title":"get_loyalty_stores_corporation_id_offers_quantity","description":"quantity integer"},"lp_cost":{"type":"integer","format":"int32","title":"get_loyalty_stores_corporation_id_offers_lp_cost","description":"lp_cost integer"},"isk_cost":{"type":"integer","format":"int64","title":"get_loyalty_stores_corporation_id_offers_isk_cost","description":"isk_cost integer"},"ak_cost":{"description":"Analysis kredit cost","type":"integer","format":"int32","title":"get_loyalty_stores_corporation_id_offers_ak_cost"},"required_items":{"type":"array","maxItems":100,"items":{"type":"object","required":["type_id","quantity"],"properties":{"type_id":{"type":"integer","format":"int32","title":"get_loyalty_stores_corporation_id_offers_type_id","description":"type_id integer"},"quantity":{"type":"integer","format":"int32","title":"get_loyalty_stores_corporation_id_offers_quantity","description":"quantity integer"}},"title":"get_loyalty_stores_corporation_id_offers_required_item","description":"required_item object"},"title":"get_loyalty_stores_corporation_id_offers_required_items","description":"required_items array"}},"title":"get_loyalty_stores_corporation_id_offers_200_ok","description":"200 ok object"},"title":"get_loyalty_stores_corporation_id_offers_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"No loyalty point store found for the provided corporation","schema":{"type":"object","title":"get_loyalty_stores_corporation_id_offers_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_loyalty_stores_corporation_id_offers_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_loyalty_stores_corporation_id_offers","x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/loyalty/points/":{"get":{"description":"Return a list of loyalty points for all corporations the character has worked for\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get loyalty points","tags":["Loyalty"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of loyalty points","examples":{"application/json":[{"corporation_id":123,"loyalty_points":100}]},"schema":{"type":"array","maxItems":500,"items":{"type":"object","required":["corporation_id","loyalty_points"],"properties":{"corporation_id":{"type":"integer","format":"int32","title":"get_characters_character_id_loyalty_points_corporation_id","description":"corporation_id integer"},"loyalty_points":{"type":"integer","format":"int32","title":"get_characters_character_id_loyalty_points_loyalty_points","description":"loyalty_points integer"}},"title":"get_characters_character_id_loyalty_points_200_ok","description":"200 ok object"},"title":"get_characters_character_id_loyalty_points_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-characters.read_loyalty.v1"]}],"operationId":"get_characters_character_id_loyalty_points","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/mail/":{"get":{"description":"Return the 50 most recent mail headers belonging to the character that match the query criteria. Queries can be filtered by label, and last_mail_id can be used to paginate backwards.\n\n---\n\nThis route is cached for up to 30 seconds","summary":"Return mail headers","tags":["Mail"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"name":"labels","in":"query","required":false,"description":"Fetch only mails that match one or more of the given labels","type":"array","uniqueItems":true,"minItems":1,"maxItems":25,"items":{"type":"integer","format":"int64","minimum":0}},{"name":"last_mail_id","in":"query","description":"List only mail with an ID lower than the given ID, if present","type":"integer","format":"int32"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"The requested mail","examples":{"application/json":[{"mail_id":7,"subject":"Title for EVE Mail","from":90000001,"timestamp":"2015-09-30T16:07:00Z","labels":[3],"recipients":[{"recipient_type":"character","recipient_id":90000002}],"is_read":true}]},"schema":{"type":"array","maxItems":50,"items":{"type":"object","properties":{"mail_id":{"type":"integer","format":"int64","title":"get_characters_character_id_mail_mail_id","description":"mail_id integer"},"subject":{"type":"string","description":"Mail subject","title":"get_characters_character_id_mail_subject"},"from":{"type":"integer","format":"int32","description":"From whom the mail was sent","title":"get_characters_character_id_mail_from"},"timestamp":{"type":"string","format":"date-time","description":"When the mail was sent","title":"get_characters_character_id_mail_timestamp"},"labels":{"type":"array","uniqueItems":true,"maxItems":25,"minimum":0,"items":{"type":"integer","format":"int64","title":"get_characters_character_id_mail_label","description":"label integer"},"title":"get_characters_character_id_mail_labels","description":"labels array"},"recipients":{"type":"array","description":"Recipients of the mail","uniqueItems":true,"minItems":1,"maxItems":52,"items":{"type":"object","required":["recipient_type","recipient_id"],"properties":{"recipient_type":{"type":"string","enum":["alliance","character","corporation","mailing_list"],"title":"get_characters_character_id_mail_recipient_type","description":"recipient_type string"},"recipient_id":{"type":"integer","format":"int32","title":"get_characters_character_id_mail_recipient_id","description":"recipient_id integer"}},"title":"get_characters_character_id_mail_recipient","description":"recipient object"},"title":"get_characters_character_id_mail_recipients"},"is_read":{"type":"boolean","title":"get_characters_character_id_mail_is_read","description":"is_read boolean"}},"title":"get_characters_character_id_mail_200_ok","description":"200 ok object"},"title":"get_characters_character_id_mail_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-mail.read_mail.v1"]}],"operationId":"get_characters_character_id_mail","x-cached-seconds":30,"x-alternate-versions":["dev","legacy","v1"]},"post":{"description":"Create and send a new mail\n\n---\n","summary":"Send a new mail","tags":["Mail"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"name":"mail","in":"body","required":true,"description":"The mail to send","schema":{"type":"object","required":["recipients","subject","body"],"properties":{"recipients":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"object","required":["recipient_type","recipient_id"],"properties":{"recipient_type":{"type":"string","enum":["alliance","character","corporation","mailing_list"],"title":"post_characters_character_id_mail_recipient_type","description":"recipient_type string"},"recipient_id":{"type":"integer","format":"int32","title":"post_characters_character_id_mail_recipient_id","description":"recipient_id integer"}},"title":"post_characters_character_id_mail_recipient","description":"recipient object"},"title":"post_characters_character_id_mail_recipients","description":"recipients array"},"subject":{"type":"string","maxLength":1000,"title":"post_characters_character_id_mail_subject","description":"subject string"},"body":{"type":"string","maxLength":10000,"title":"post_characters_character_id_mail_body","description":"body string"},"approved_cost":{"type":"integer","format":"int64","default":0,"title":"post_characters_character_id_mail_approved_cost","description":"approved_cost integer"}},"title":"post_characters_character_id_mail_mail","description":"mail object"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"201":{"description":"Mail created","examples":{"application/json":13},"schema":{"type":"integer","format":"int32","description":"Mail ID","title":"post_characters_character_id_mail_created"}},"400":{"description":"Only one corporation, alliance, or mailing list can be the recipient of a mail","schema":{"type":"object","title":"post_characters_character_id_mail_bad_request","description":"Bad request","properties":{"error":{"type":"string","description":"Bad request message","title":"post_characters_character_id_mail_400_bad_request"}}},"examples":{"application/json":{"error":"Bad request message"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-mail.send_mail.v1"]}],"operationId":"post_characters_character_id_mail","x-alternate-versions":["dev","legacy","v1"]}},"/v3/characters/{character_id}/mail/labels/":{"get":{"description":"Return a list of the users mail labels, unread counts for each label and a total unread count.\n\n---\n\nThis route is cached for up to 30 seconds","summary":"Get mail labels and unread counts","tags":["Mail"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of mail labels and unread counts","examples":{"application/json":{"total_unread_count":5,"labels":[{"label_id":16,"name":"PINK","color_hex":"#660066","unread_count":4},{"label_id":17,"name":"WHITE","color_hex":"#ffffff","unread_count":1}]}},"schema":{"type":"object","properties":{"total_unread_count":{"type":"integer","format":"int32","minimum":0,"title":"get_characters_character_id_mail_labels_total_unread_count","description":"total_unread_count integer"},"labels":{"type":"array","maxItems":30,"items":{"type":"object","properties":{"unread_count":{"type":"integer","format":"int32","minimum":0,"title":"get_characters_character_id_mail_labels_unread_count","description":"unread_count integer"},"label_id":{"type":"integer","format":"int32","minimum":0,"title":"get_characters_character_id_mail_labels_label_id","description":"label_id integer"},"name":{"type":"string","maxLength":40,"title":"get_characters_character_id_mail_labels_name","description":"name string"},"color":{"type":"string","default":"#ffffff","enum":["#0000fe","#006634","#0099ff","#00ff33","#01ffff","#349800","#660066","#666666","#999999","#99ffff","#9a0000","#ccff9a","#e6e6e6","#fe0000","#ff6600","#ffff01","#ffffcd","#ffffff"],"title":"get_characters_character_id_mail_labels_color","description":"color string"}},"title":"get_characters_character_id_mail_labels_label","description":"label object"},"title":"get_characters_character_id_mail_labels_labels","description":"labels array"}},"title":"get_characters_character_id_mail_labels_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-mail.read_mail.v1"]}],"operationId":"get_characters_character_id_mail_labels","x-cached-seconds":30,"x-alternate-versions":["dev","v3"]}},"/v2/characters/{character_id}/mail/labels/":{"post":{"description":"Create a mail label\n\n---\n","summary":"Create a mail label","tags":["Mail"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"name":"label","description":"Label to create","in":"body","required":true,"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","minLength":1,"maxLength":40,"title":"post_characters_character_id_mail_labels_name","description":"name string"},"color":{"type":"string","description":"Hexadecimal string representing label color, in RGB format","default":"#ffffff","enum":["#0000fe","#006634","#0099ff","#00ff33","#01ffff","#349800","#660066","#666666","#999999","#99ffff","#9a0000","#ccff9a","#e6e6e6","#fe0000","#ff6600","#ffff01","#ffffcd","#ffffff"],"title":"post_characters_character_id_mail_labels_color"}},"title":"post_characters_character_id_mail_labels_label","description":"label object"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"201":{"description":"Label created","examples":{"application/json":128},"schema":{"type":"integer","format":"int64","description":"Label ID","title":"post_characters_character_id_mail_labels_created"}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-mail.organize_mail.v1"]}],"operationId":"post_characters_character_id_mail_labels","x-alternate-versions":["dev","legacy","v2"]}},"/v1/characters/{character_id}/mail/labels/{label_id}/":{"delete":{"description":"Delete a mail label\n\n---\n","summary":"Delete a mail label","tags":["Mail"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"name":"label_id","in":"path","description":"An EVE label id","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Label deleted"},"422":{"description":"Default labels cannot be deleted","schema":{"type":"object","title":"delete_characters_character_id_mail_labels_label_id_unprocessable_entity","description":"Unprocessable entity","properties":{"error":{"type":"string","description":"Unprocessable entity message","title":"delete_characters_character_id_mail_labels_label_id_422_unprocessable_entity"}}},"examples":{"application/json":{"error":"Unprocessable entity message"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-mail.organize_mail.v1"]}],"operationId":"delete_characters_character_id_mail_labels_label_id","x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/mail/lists/":{"get":{"description":"Return all mailing lists that the character is subscribed to\n\n---\n\nThis route is cached for up to 120 seconds","summary":"Return mailing list subscriptions","tags":["Mail"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Mailing lists","examples":{"application/json":[{"mailing_list_id":1,"name":"test_mailing_list"}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["mailing_list_id","name"],"properties":{"mailing_list_id":{"description":"Mailing list ID","format":"int32","type":"integer","title":"get_characters_character_id_mail_lists_mailing_list_id"},"name":{"type":"string","title":"get_characters_character_id_mail_lists_name","description":"name string"}},"title":"get_characters_character_id_mail_lists_200_ok","description":"200 ok object"},"title":"get_characters_character_id_mail_lists_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-mail.read_mail.v1"]}],"operationId":"get_characters_character_id_mail_lists","x-cached-seconds":120,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/mail/{mail_id}/":{"delete":{"description":"Delete a mail\n\n---\n","summary":"Delete a mail","tags":["Mail"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"name":"mail_id","in":"path","description":"An EVE mail ID","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Mail deleted"},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-mail.organize_mail.v1"]}],"operationId":"delete_characters_character_id_mail_mail_id","x-alternate-versions":["dev","legacy","v1"]},"get":{"description":"Return the contents of an EVE mail\n\n---\n\nThis route is cached for up to 30 seconds","summary":"Return a mail","tags":["Mail"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"name":"mail_id","in":"path","description":"An EVE mail ID","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Contents of a mail","examples":{"application/json":{"subject":"test","from":90000001,"timestamp":"2015-09-30T16:07:00Z","body":"blah blah blah","labels":[2,32],"read":true}},"schema":{"type":"object","properties":{"subject":{"type":"string","description":"Mail subject","title":"get_characters_character_id_mail_mail_id_subject"},"from":{"type":"integer","format":"int32","description":"From whom the mail was sent","title":"get_characters_character_id_mail_mail_id_from"},"timestamp":{"type":"string","format":"date-time","description":"When the mail was sent","title":"get_characters_character_id_mail_mail_id_timestamp"},"recipients":{"type":"array","description":"Recipients of the mail","uniqueItems":true,"minItems":1,"maxItems":52,"items":{"type":"object","required":["recipient_type","recipient_id"],"properties":{"recipient_type":{"type":"string","enum":["alliance","character","corporation","mailing_list"],"title":"get_characters_character_id_mail_mail_id_recipient_type","description":"recipient_type string"},"recipient_id":{"type":"integer","format":"int32","title":"get_characters_character_id_mail_mail_id_recipient_id","description":"recipient_id integer"}},"title":"get_characters_character_id_mail_mail_id_recipient","description":"recipient object"},"title":"get_characters_character_id_mail_mail_id_recipients"},"body":{"type":"string","description":"Mail's body","title":"get_characters_character_id_mail_mail_id_body"},"labels":{"type":"array","maxItems":25,"description":"Labels attached to the mail","items":{"type":"integer","format":"int64","uniqueItems":true,"minimum":0,"title":"get_characters_character_id_mail_mail_id_label","description":"label integer"},"title":"get_characters_character_id_mail_mail_id_labels"},"read":{"type":"boolean","description":"Whether the mail is flagged as read","title":"get_characters_character_id_mail_mail_id_read"}},"title":"get_characters_character_id_mail_mail_id_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"Mail not found","schema":{"type":"object","title":"get_characters_character_id_mail_mail_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_characters_character_id_mail_mail_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-mail.read_mail.v1"]}],"operationId":"get_characters_character_id_mail_mail_id","x-cached-seconds":30,"x-alternate-versions":["dev","legacy","v1"]},"put":{"description":"Update metadata about a mail\n\n---\n","summary":"Update metadata about a mail","tags":["Mail"],"parameters":[{"$ref":"#/parameters/character_id"},{"name":"contents","in":"body","description":"Data used to update the mail","required":true,"schema":{"type":"object","properties":{"read":{"type":"boolean","description":"Whether the mail is flagged as read","title":"put_characters_character_id_mail_mail_id_read"},"labels":{"type":"array","maxItems":25,"description":"Labels to assign to the mail. Pre-existing labels are unassigned.","items":{"type":"integer","format":"int64","uniqueItems":true,"minimum":0,"title":"put_characters_character_id_mail_mail_id_label","description":"label integer"},"title":"put_characters_character_id_mail_mail_id_labels"}},"title":"put_characters_character_id_mail_mail_id_contents","description":"contents object"}},{"$ref":"#/parameters/datasource"},{"name":"mail_id","in":"path","description":"An EVE mail ID","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Mail updated"},"400":{"description":"Invalid label ID; or No parameters in body -- nothing to do","schema":{"type":"object","title":"put_characters_character_id_mail_mail_id_bad_request","description":"Bad request","properties":{"error":{"type":"string","description":"Bad request message","title":"put_characters_character_id_mail_mail_id_400_bad_request"}}},"examples":{"application/json":{"error":"Bad request message"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-mail.organize_mail.v1"]}],"operationId":"put_characters_character_id_mail_mail_id","x-alternate-versions":["dev","legacy","v1"]}},"/v1/markets/prices/":{"get":{"description":"Return a list of prices\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"List market prices","tags":["Market"],"responses":{"200":{"description":"A list of prices","examples":{"application/json":[{"type_id":32772,"average_price":306292.67,"adjusted_price":306988.09}]},"schema":{"type":"array","maxItems":20000,"items":{"type":"object","required":["type_id"],"properties":{"type_id":{"type":"integer","format":"int32","title":"get_markets_prices_type_id","description":"type_id integer"},"average_price":{"type":"number","format":"double","title":"get_markets_prices_average_price","description":"average_price number"},"adjusted_price":{"type":"number","format":"double","title":"get_markets_prices_adjusted_price","description":"adjusted_price number"}},"title":"get_markets_prices_200_ok","description":"200 ok object"},"title":"get_markets_prices_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_markets_prices","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/markets/{region_id}/orders/":{"get":{"description":"Return a list of orders in a region\n\n---\n\nThis route is cached for up to 300 seconds","summary":"List orders in a region","tags":["Market"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"order_type","in":"query","description":"Filter buy/sell orders, return all orders by default. If you query without type_id, we always return both buy and sell orders.","required":true,"type":"string","enum":["buy","sell","all"],"default":"all"},{"$ref":"#/parameters/page"},{"name":"region_id","in":"path","description":"Return orders in this region","required":true,"type":"integer","format":"int32"},{"name":"type_id","in":"query","description":"Return orders only for this type","required":false,"type":"integer","format":"int32"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of orders","examples":{"application/json":[{"order_id":4623824223,"type_id":34,"location_id":60005599,"volume_total":2000000,"volume_remain":1296000,"min_volume":1,"price":9.9,"is_buy_order":false,"duration":90,"issued":"2016-09-03T05:12:25Z","range":"region"}]},"schema":{"type":"array","maxItems":10000,"items":{"type":"object","required":["order_id","type_id","location_id","volume_total","volume_remain","min_volume","price","is_buy_order","duration","issued","range"],"properties":{"order_id":{"type":"integer","format":"int64","title":"get_markets_region_id_orders_order_id","description":"order_id integer"},"type_id":{"type":"integer","format":"int32","title":"get_markets_region_id_orders_type_id","description":"type_id integer"},"location_id":{"type":"integer","format":"int64","title":"get_markets_region_id_orders_location_id","description":"location_id integer"},"volume_total":{"type":"integer","format":"int32","title":"get_markets_region_id_orders_volume_total","description":"volume_total integer"},"volume_remain":{"type":"integer","format":"int32","title":"get_markets_region_id_orders_volume_remain","description":"volume_remain integer"},"min_volume":{"type":"integer","format":"int32","title":"get_markets_region_id_orders_min_volume","description":"min_volume integer"},"price":{"type":"number","format":"double","title":"get_markets_region_id_orders_price","description":"price number"},"is_buy_order":{"type":"boolean","title":"get_markets_region_id_orders_is_buy_order","description":"is_buy_order boolean"},"duration":{"type":"integer","format":"int32","title":"get_markets_region_id_orders_duration","description":"duration integer"},"issued":{"type":"string","format":"date-time","title":"get_markets_region_id_orders_issued","description":"issued string"},"range":{"type":"string","enum":["station","region","solarsystem","1","2","3","4","5","10","20","30","40"],"title":"get_markets_region_id_orders_range","description":"range string"}},"title":"get_markets_region_id_orders_200_ok","description":"200 ok object"},"title":"get_markets_region_id_orders_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"422":{"description":"Not found","schema":{"type":"object","title":"get_markets_region_id_orders_unprocessable_entity","description":"Unprocessable entity","properties":{"error":{"type":"string","description":"Unprocessable entity message","title":"get_markets_region_id_orders_422_unprocessable_entity"}}},"examples":{"application/json":{"error":"Unprocessable entity message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_markets_region_id_orders","x-cached-seconds":300,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/markets/{region_id}/history/":{"get":{"description":"Return a list of historical market statistics for the specified type in a region\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"List historical market statistics in a region","tags":["Market"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"region_id","in":"path","description":"Return statistics in this region","required":true,"type":"integer","format":"int32"},{"name":"type_id","in":"query","description":"Return statistics for this type","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of historical market statistics","examples":{"application/json":[{"date":"2015-05-01","order_count":2267,"volume":16276782035,"highest":5.27,"average":5.25,"lowest":5.11}]},"schema":{"type":"array","maxItems":500,"items":{"type":"object","required":["date","order_count","volume","highest","average","lowest"],"properties":{"date":{"type":"string","format":"date","description":"The date of this historical statistic entry","title":"get_markets_region_id_history_date"},"order_count":{"type":"integer","format":"int64","description":"Total number of orders happened that day","title":"get_markets_region_id_history_order_count"},"volume":{"type":"integer","format":"int64","description":"Total","title":"get_markets_region_id_history_volume"},"highest":{"type":"number","format":"double","title":"get_markets_region_id_history_highest","description":"highest number"},"average":{"type":"number","format":"double","title":"get_markets_region_id_history_average","description":"average number"},"lowest":{"type":"number","format":"double","title":"get_markets_region_id_history_lowest","description":"lowest number"}},"title":"get_markets_region_id_history_200_ok","description":"200 ok object"},"title":"get_markets_region_id_history_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"422":{"description":"Not found","schema":{"type":"object","title":"get_markets_region_id_history_unprocessable_entity","description":"Unprocessable entity","properties":{"error":{"type":"string","description":"Unprocessable entity message","title":"get_markets_region_id_history_422_unprocessable_entity"}}},"examples":{"application/json":{"error":"Unprocessable entity message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_markets_region_id_history","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/markets/structures/{structure_id}/":{"get":{"description":"Return all orders in a structure\n\n---\n\nThis route is cached for up to 300 seconds","summary":"List orders in a structure","tags":["Market"],"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"name":"structure_id","in":"path","description":"Return orders in this structure","required":true,"type":"integer","format":"int64"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of orders","examples":{"application/json":[{"order_id":4623824223,"type_id":34,"location_id":1020988381992,"volume_total":2000000,"volume_remain":1296000,"min_volume":1,"price":9.9,"is_buy_order":false,"duration":90,"issued":"2016-09-03T05:12:25Z","range":"region"}]},"schema":{"type":"array","maxItems":5000,"items":{"type":"object","required":["order_id","type_id","location_id","volume_total","volume_remain","min_volume","price","is_buy_order","duration","issued","range"],"properties":{"order_id":{"type":"integer","format":"int64","title":"get_markets_structures_structure_id_order_id","description":"order_id integer"},"type_id":{"type":"integer","format":"int32","title":"get_markets_structures_structure_id_type_id","description":"type_id integer"},"location_id":{"type":"integer","format":"int64","title":"get_markets_structures_structure_id_location_id","description":"location_id integer"},"volume_total":{"type":"integer","format":"int32","title":"get_markets_structures_structure_id_volume_total","description":"volume_total integer"},"volume_remain":{"type":"integer","format":"int32","title":"get_markets_structures_structure_id_volume_remain","description":"volume_remain integer"},"min_volume":{"type":"integer","format":"int32","title":"get_markets_structures_structure_id_min_volume","description":"min_volume integer"},"price":{"type":"number","format":"double","title":"get_markets_structures_structure_id_price","description":"price number"},"is_buy_order":{"type":"boolean","title":"get_markets_structures_structure_id_is_buy_order","description":"is_buy_order boolean"},"duration":{"type":"integer","format":"int32","title":"get_markets_structures_structure_id_duration","description":"duration integer"},"issued":{"type":"string","format":"date-time","title":"get_markets_structures_structure_id_issued","description":"issued string"},"range":{"type":"string","enum":["station","region","solarsystem","1","2","3","4","5","10","20","30","40"],"title":"get_markets_structures_structure_id_range","description":"range string"}},"title":"get_markets_structures_structure_id_200_ok","description":"200 ok object"},"title":"get_markets_structures_structure_id_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-markets.structure_markets.v1"]}],"operationId":"get_markets_structures_structure_id","x-cached-seconds":300,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/markets/groups/":{"get":{"description":"Get a list of item groups\n\n---\n\nThis route expires daily at 11:05","summary":"Get item groups","tags":["Market"],"responses":{"200":{"description":"A list of item group ids","examples":{"application/json":[1,2,3]},"schema":{"type":"array","maxItems":5000,"items":{"type":"integer","format":"int32","title":"get_markets_groups_200_ok","description":"200 ok integer"},"title":"get_markets_groups_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_markets_groups","x-alternate-versions":["dev","legacy","v1"]}},"/v1/markets/groups/{market_group_id}/":{"get":{"description":"Get information on an item group\n\n---\n\nThis route expires daily at 11:05","summary":"Get item group information","tags":["Market"],"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"name":"market_group_id","in":"path","description":"An Eve item group ID","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about an item group","examples":{"application/json":{"market_group_id":5,"name":"Standard Frigates","description":"Small, fast vessels suited to a variety of purposes.","types":[582,583],"parent_group_id":1361}},"schema":{"type":"object","required":["market_group_id","name","description","types"],"properties":{"market_group_id":{"type":"integer","format":"int32","title":"get_markets_groups_market_group_id_market_group_id","description":"market_group_id integer"},"name":{"type":"string","title":"get_markets_groups_market_group_id_name","description":"name string"},"description":{"type":"string","title":"get_markets_groups_market_group_id_description","description":"description string"},"types":{"type":"array","maxItems":5000,"items":{"type":"integer","format":"int32","title":"get_markets_groups_market_group_id_type","description":"type integer"},"title":"get_markets_groups_market_group_id_types","description":"types array"},"parent_group_id":{"type":"integer","format":"int32","title":"get_markets_groups_market_group_id_parent_group_id","description":"parent_group_id integer"}},"title":"get_markets_groups_market_group_id_ok","description":"200 ok object"},"headers":{"Content-Language":{"description":"The language used in the response","type":"string","enum":["de","en-us","fr","ja","ru","zh"]},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"Market group not found","schema":{"type":"object","title":"get_markets_groups_market_group_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_markets_groups_market_group_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_markets_groups_market_group_id","x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/orders/":{"get":{"summary":"List open orders from a character","description":"List market orders placed by a character\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\n[This route has an available update](https://esi.tech.ccp.is/diff/latest/dev/#GET-/characters/{character_id}/orders/)","tags":["Market"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Market orders placed by a character","examples":{"application/json":[{"order_id":123,"type_id":456,"region_id":123,"location_id":456,"range":"station","is_buy_order":true,"price":33.3,"volume_total":123456,"volume_remain":4422,"issued":"2016-09-03T05:12:25Z","state":"open","min_volume":1,"account_id":1000,"duration":30,"is_corp":false,"escrow":45.6}]},"schema":{"type":"array","maxItems":500,"items":{"type":"object","required":["order_id","type_id","region_id","location_id","range","is_buy_order","price","volume_total","volume_remain","issued","state","min_volume","account_id","duration","is_corp","escrow"],"properties":{"order_id":{"type":"integer","format":"int64","description":"Unique order ID","title":"get_characters_character_id_orders_order_id"},"type_id":{"type":"integer","format":"int32","description":"The type ID of the item transacted in this order","title":"get_characters_character_id_orders_type_id"},"region_id":{"type":"integer","format":"int32","description":"ID of the region where order was placed","title":"get_characters_character_id_orders_region_id"},"location_id":{"type":"integer","format":"int64","description":"ID of the location where order was placed","title":"get_characters_character_id_orders_location_id"},"range":{"type":"string","description":"Valid order range, numbers are ranges in jumps","enum":["1","10","2","20","3","30","4","40","5","region","solarsystem","station"],"title":"get_characters_character_id_orders_range"},"is_buy_order":{"type":"boolean","description":"True for a bid (buy) order. False for an offer (sell) order","title":"get_characters_character_id_orders_is_buy_order"},"price":{"type":"number","format":"double","description":"Cost per unit for this order","title":"get_characters_character_id_orders_price"},"volume_total":{"type":"integer","format":"int32","description":"Quantity of items required or offered at time order was placed","title":"get_characters_character_id_orders_volume_total"},"volume_remain":{"type":"integer","format":"int32","description":"Quantity of items still required or offered","title":"get_characters_character_id_orders_volume_remain"},"issued":{"type":"string","format":"date-time","description":"Date and time when this order was issued","title":"get_characters_character_id_orders_issued"},"state":{"type":"string","description":"Current order state","enum":["cancelled","character_deleted","closed","expired","open","pending"],"title":"get_characters_character_id_orders_state"},"min_volume":{"type":"integer","format":"int32","description":"For bids (buy orders), the minimum quantity that will be accepted in a matching offer (sell order)","title":"get_characters_character_id_orders_min_volume"},"account_id":{"type":"integer","format":"int32","description":"Wallet division for the buyer or seller of this order. Always 1000 for characters. Currently 1000 through 1006 for corporations","title":"get_characters_character_id_orders_account_id"},"duration":{"type":"integer","format":"int32","description":"Number of days the order is valid for (starting from the issued date). An order expires at time issued + duration","title":"get_characters_character_id_orders_duration"},"is_corp":{"type":"boolean","title":"get_characters_character_id_orders_is_corp","description":"is_corp boolean"},"escrow":{"type":"number","format":"double","description":"For buy orders, the amount of ISK in escrow","title":"get_characters_character_id_orders_escrow"}},"title":"get_characters_character_id_orders_200_ok","description":"200 ok object"},"title":"get_characters_character_id_orders_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-markets.read_character_orders.v1"]}],"operationId":"get_characters_character_id_orders","x-cached-seconds":3600,"x-alternate-versions":["legacy","v1"]}},"/v1/characters/{character_id}/orders/history/":{"get":{"summary":"List historical orders by a character","description":"List cancelled and expired market orders placed by a character up to 90 days in the past.\n\n---\n\nThis route is cached for up to 3600 seconds","tags":["Market"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Expired and cancelled market orders placed by a character","examples":{"application/json":[{"order_id":123,"type_id":456,"region_id":123,"location_id":456,"range":"station","is_buy_order":true,"price":33.3,"volume_total":123456,"volume_remain":4422,"issued":"2016-09-03T05:12:25Z","state":"expired","min_volume":1,"duration":30,"is_corporation":false,"escrow":45.6}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["is_corporation","duration","state","order_id","type_id","region_id","location_id","range","price","volume_total","volume_remain","issued"],"properties":{"order_id":{"type":"integer","format":"int64","description":"Unique order ID","title":"get_characters_character_id_orders_history_order_id"},"type_id":{"type":"integer","format":"int32","description":"The type ID of the item transacted in this order","title":"get_characters_character_id_orders_history_type_id"},"region_id":{"type":"integer","format":"int32","description":"ID of the region where order was placed","title":"get_characters_character_id_orders_history_region_id"},"location_id":{"type":"integer","format":"int64","description":"ID of the location where order was placed","title":"get_characters_character_id_orders_history_location_id"},"range":{"type":"string","description":"Valid order range, numbers are ranges in jumps","enum":["1","10","2","20","3","30","4","40","5","region","solarsystem","station"],"title":"get_characters_character_id_orders_history_range"},"price":{"type":"number","format":"double","description":"Cost per unit for this order","title":"get_characters_character_id_orders_history_price"},"volume_total":{"type":"integer","format":"int32","description":"Quantity of items required or offered at time order was placed","title":"get_characters_character_id_orders_history_volume_total"},"volume_remain":{"type":"integer","format":"int32","description":"Quantity of items still required or offered","title":"get_characters_character_id_orders_history_volume_remain"},"issued":{"type":"string","format":"date-time","description":"Date and time when this order was issued","title":"get_characters_character_id_orders_history_issued"},"is_buy_order":{"type":"boolean","description":"True if the order is a bid (buy) order","title":"get_characters_character_id_orders_history_is_buy_order"},"min_volume":{"type":"integer","format":"int32","description":"For buy orders, the minimum quantity that will be accepted in a matching sell order","title":"get_characters_character_id_orders_history_min_volume"},"escrow":{"type":"number","format":"double","description":"For buy orders, the amount of ISK in escrow","title":"get_characters_character_id_orders_history_escrow"},"duration":{"type":"integer","format":"int32","description":"Number of days the order was valid for (starting from the issued date). An order expires at time issued + duration","title":"get_characters_character_id_orders_history_duration"},"state":{"type":"string","description":"Current order state","enum":["cancelled","expired"],"title":"get_characters_character_id_orders_history_state"},"is_corporation":{"type":"boolean","description":"Signifies whether the buy/sell order was placed on behalf of a corporation.","title":"get_characters_character_id_orders_history_is_corporation"}},"title":"get_characters_character_id_orders_history_200_ok","description":"200 ok object"},"title":"get_characters_character_id_orders_history_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-markets.read_character_orders.v1"]}],"operationId":"get_characters_character_id_orders_history","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/markets/{region_id}/types/":{"get":{"description":"Return a list of type IDs that have active orders in the region, for efficient market indexing.\n\n---\n\nThis route is cached for up to 600 seconds","summary":"List type IDs relevant to a market","tags":["Market"],"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"name":"region_id","in":"path","description":"Return statistics in this region","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of type IDs","examples":{"application/json":[587,593,597]},"schema":{"type":"array","maxItems":1000,"items":{"type":"integer","format":"int32","title":"get_markets_region_id_types_200_ok","description":"200 ok integer"},"title":"get_markets_region_id_types_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_markets_region_id_types","x-cached-seconds":600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/orders/":{"get":{"summary":"List open orders from a corporation","description":"List open market orders placed on behalf of a corporation\n\n---\n\nThis route is cached for up to 1200 seconds\n\n---\nRequires one of the following EVE corporation role(s): Accountant, Trader\n\n---\n[This route has an available update](https://esi.tech.ccp.is/diff/latest/dev/#GET-/corporations/{corporation_id}/orders/)","tags":["Market"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of open market orders","examples":{"application/json":[{"order_id":123,"type_id":456,"region_id":123,"location_id":456,"range":"station","is_buy_order":true,"price":33.3,"volume_total":123456,"volume_remain":4422,"issued":"2016-09-03T05:12:25Z","state":"open","min_volume":1,"wallet_division":1,"duration":30,"escrow":45.6}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["order_id","type_id","region_id","location_id","range","is_buy_order","price","volume_total","volume_remain","issued","state","min_volume","wallet_division","duration","escrow"],"properties":{"order_id":{"type":"integer","format":"int64","description":"Unique order ID","title":"get_corporations_corporation_id_orders_order_id"},"type_id":{"type":"integer","format":"int32","description":"The type ID of the item transacted in this order","title":"get_corporations_corporation_id_orders_type_id"},"region_id":{"type":"integer","format":"int32","description":"ID of the region where order was placed","title":"get_corporations_corporation_id_orders_region_id"},"location_id":{"type":"integer","format":"int64","description":"ID of the location where order was placed","title":"get_corporations_corporation_id_orders_location_id"},"range":{"type":"string","description":"Valid order range, numbers are ranges in jumps","enum":["1","10","2","20","3","30","4","40","5","region","solarsystem","station"],"title":"get_corporations_corporation_id_orders_range"},"is_buy_order":{"type":"boolean","description":"True for a bid (buy) order. False for an offer (sell) order","title":"get_corporations_corporation_id_orders_is_buy_order"},"price":{"type":"number","format":"double","description":"Cost per unit for this order","title":"get_corporations_corporation_id_orders_price"},"volume_total":{"type":"integer","format":"int32","description":"Quantity of items required or offered at time order was placed","title":"get_corporations_corporation_id_orders_volume_total"},"volume_remain":{"type":"integer","format":"int32","description":"Quantity of items still required or offered","title":"get_corporations_corporation_id_orders_volume_remain"},"issued":{"type":"string","format":"date-time","description":"Date and time when this order was issued","title":"get_corporations_corporation_id_orders_issued"},"state":{"type":"string","description":"Current order state","enum":["cancelled","character_deleted","closed","expired","open","pending"],"title":"get_corporations_corporation_id_orders_state"},"min_volume":{"type":"integer","format":"int32","description":"For bids (buy orders), the minimum quantity that will be accepted in a matching offer (sell order)","title":"get_corporations_corporation_id_orders_min_volume"},"wallet_division":{"type":"integer","format":"int32","minimum":1,"maximum":7,"description":"The corporation wallet division used for this order.","title":"get_corporations_corporation_id_orders_wallet_division"},"duration":{"type":"integer","format":"int32","description":"Number of days the order is valid for (starting from the issued date). An order expires at time issued + duration","title":"get_corporations_corporation_id_orders_duration"},"escrow":{"type":"number","format":"double","description":"For buy orders, the amount of ISK in escrow","title":"get_corporations_corporation_id_orders_escrow"}},"title":"get_corporations_corporation_id_orders_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_orders_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Accountant","Trader"],"security":[{"evesso":["esi-markets.read_corporation_orders.v1"]}],"operationId":"get_corporations_corporation_id_orders","x-cached-seconds":1200,"x-alternate-versions":["legacy","v1"]}},"/v1/corporations/{corporation_id}/orders/history/":{"get":{"summary":"List historical orders from a corporation","description":"List cancelled and expired market orders placed on behalf of a corporation up to 90 days in the past.\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Accountant, Trader","tags":["Market"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Expired and cancelled market orders placed on behalf of a corporation","examples":{"application/json":[{"order_id":123,"type_id":456,"region_id":123,"location_id":456,"range":"station","is_buy_order":true,"price":33.3,"volume_total":123456,"volume_remain":4422,"issued":"2016-09-03T05:12:25Z","state":"expired","min_volume":1,"wallet_division":1,"duration":30,"escrow":45.6}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["wallet_division","duration","state","order_id","type_id","region_id","location_id","range","price","volume_total","volume_remain","issued"],"properties":{"order_id":{"type":"integer","format":"int64","description":"Unique order ID","title":"get_corporations_corporation_id_orders_history_order_id"},"type_id":{"type":"integer","format":"int32","description":"The type ID of the item transacted in this order","title":"get_corporations_corporation_id_orders_history_type_id"},"region_id":{"type":"integer","format":"int32","description":"ID of the region where order was placed","title":"get_corporations_corporation_id_orders_history_region_id"},"location_id":{"type":"integer","format":"int64","description":"ID of the location where order was placed","title":"get_corporations_corporation_id_orders_history_location_id"},"range":{"type":"string","description":"Valid order range, numbers are ranges in jumps","enum":["1","10","2","20","3","30","4","40","5","region","solarsystem","station"],"title":"get_corporations_corporation_id_orders_history_range"},"price":{"type":"number","format":"double","description":"Cost per unit for this order","title":"get_corporations_corporation_id_orders_history_price"},"volume_total":{"type":"integer","format":"int32","description":"Quantity of items required or offered at time order was placed","title":"get_corporations_corporation_id_orders_history_volume_total"},"volume_remain":{"type":"integer","format":"int32","description":"Quantity of items still required or offered","title":"get_corporations_corporation_id_orders_history_volume_remain"},"issued":{"type":"string","format":"date-time","description":"Date and time when this order was issued","title":"get_corporations_corporation_id_orders_history_issued"},"is_buy_order":{"type":"boolean","description":"True if the order is a bid (buy) order","title":"get_corporations_corporation_id_orders_history_is_buy_order"},"min_volume":{"type":"integer","format":"int32","description":"For buy orders, the minimum quantity that will be accepted in a matching sell order","title":"get_corporations_corporation_id_orders_history_min_volume"},"escrow":{"type":"number","format":"double","description":"For buy orders, the amount of ISK in escrow","title":"get_corporations_corporation_id_orders_history_escrow"},"duration":{"type":"integer","format":"int32","description":"Number of days the order was valid for (starting from the issued date). An order expires at time issued + duration","title":"get_corporations_corporation_id_orders_history_duration"},"state":{"type":"string","description":"Current order state","enum":["cancelled","expired"],"title":"get_corporations_corporation_id_orders_history_state"},"wallet_division":{"type":"integer","format":"int32","minimum":1,"maximum":7,"description":"The corporation wallet division used for this order.","title":"get_corporations_corporation_id_orders_history_wallet_division"}},"title":"get_corporations_corporation_id_orders_history_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_orders_history_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Accountant","Trader"],"security":[{"evesso":["esi-markets.read_corporation_orders.v1"]}],"operationId":"get_corporations_corporation_id_orders_history","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/opportunities/groups/":{"get":{"description":"Return a list of opportunities groups\n\n---\n\nThis route expires daily at 11:05","summary":"Get opportunities groups","tags":["Opportunities"],"responses":{"200":{"description":"A list of opportunities group ids","examples":{"application/json":[100,101,102,103]},"schema":{"type":"array","maxItems":50,"items":{"type":"integer","format":"int32","title":"get_opportunities_groups_200_ok","description":"200 ok integer"},"title":"get_opportunities_groups_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_opportunities_groups","x-alternate-versions":["dev","legacy","v1"]}},"/v1/opportunities/groups/{group_id}/":{"get":{"description":"Return information of an opportunities group\n\n---\n\nThis route expires daily at 11:05","summary":"Get opportunities group","tags":["Opportunities"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"group_id","in":"path","description":"ID of an opportunities group","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Details of an opportunities group","examples":{"application/json":{"group_id":103,"name":"Welcome to New Eden","description":"As a capsuleer...","notification":"Completed:
Welcome to New Eden","required_tasks":[19],"connected_groups":[100]}},"schema":{"type":"object","required":["group_id","name","description","notification","required_tasks","connected_groups"],"properties":{"group_id":{"type":"integer","format":"int32","title":"get_opportunities_groups_group_id_group_id","description":"group_id integer"},"name":{"type":"string","title":"get_opportunities_groups_group_id_name","description":"name string"},"description":{"type":"string","title":"get_opportunities_groups_group_id_description","description":"description string"},"notification":{"type":"string","title":"get_opportunities_groups_group_id_notification","description":"notification string"},"required_tasks":{"description":"Tasks need to complete for this group","type":"array","maxItems":100,"items":{"type":"integer","format":"int32","title":"get_opportunities_groups_group_id_required_task","description":"required_task integer"},"title":"get_opportunities_groups_group_id_required_tasks"},"connected_groups":{"description":"The groups that are connected to this group on the opportunities map","type":"array","maxItems":50,"items":{"type":"integer","format":"int32","title":"get_opportunities_groups_group_id_connected_group","description":"connected_group integer"},"title":"get_opportunities_groups_group_id_connected_groups"}},"title":"get_opportunities_groups_group_id_ok","description":"200 ok object"},"headers":{"Content-Language":{"description":"The language used in the response","type":"string","enum":["de","en-us","fr","ja","ru","zh"]},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_opportunities_groups_group_id","x-alternate-versions":["dev","legacy","v1"]}},"/v1/opportunities/tasks/":{"get":{"description":"Return a list of opportunities tasks\n\n---\n\nThis route expires daily at 11:05","summary":"Get opportunities tasks","tags":["Opportunities"],"responses":{"200":{"description":"A list of opportunities task ids","examples":{"application/json":[1,2,3,4]},"schema":{"type":"array","maxItems":100,"items":{"type":"integer","format":"int32","title":"get_opportunities_tasks_200_ok","description":"200 ok integer"},"title":"get_opportunities_tasks_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_opportunities_tasks","x-alternate-versions":["dev","legacy","v1"]}},"/v1/opportunities/tasks/{task_id}/":{"get":{"description":"Return information of an opportunities task\n\n---\n\nThis route expires daily at 11:05","summary":"Get opportunities task","tags":["Opportunities"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"task_id","in":"path","description":"ID of an opportunities task","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Details of an opportunities task","examples":{"application/json":{"task_id":10,"name":"Dock in the station","description":"To use station services...","notification":"Completed:
Docked in a station!"}},"schema":{"type":"object","required":["task_id","name","description","notification"],"properties":{"task_id":{"type":"integer","format":"int32","title":"get_opportunities_tasks_task_id_task_id","description":"task_id integer"},"name":{"type":"string","title":"get_opportunities_tasks_task_id_name","description":"name string"},"description":{"type":"string","title":"get_opportunities_tasks_task_id_description","description":"description string"},"notification":{"type":"string","title":"get_opportunities_tasks_task_id_notification","description":"notification string"}},"title":"get_opportunities_tasks_task_id_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_opportunities_tasks_task_id","x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/opportunities/":{"get":{"description":"Return a list of tasks finished by a character\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get a character's completed tasks","tags":["Opportunities"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of opportunities task ids","examples":{"application/json":[{"task_id":1,"completed_at":"2016-04-29T12:34:56Z"}]},"schema":{"type":"array","maxItems":100,"items":{"type":"object","required":["task_id","completed_at"],"properties":{"task_id":{"type":"integer","format":"int32","title":"get_characters_character_id_opportunities_task_id","description":"task_id integer"},"completed_at":{"type":"string","format":"date-time","title":"get_characters_character_id_opportunities_completed_at","description":"completed_at string"}},"title":"get_characters_character_id_opportunities_200_ok","description":"200 ok object"},"title":"get_characters_character_id_opportunities_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-characters.read_opportunities.v1"]}],"operationId":"get_characters_character_id_opportunities","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/planets/":{"get":{"description":"Returns a list of all planetary colonies owned by a character.\n\n---\n\nThis route is cached for up to 600 seconds","summary":"Get colonies","tags":["Planetary Interaction"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of colonies","examples":{"application/json":[{"solar_system_id":30000379,"upgrade_level":0,"planet_id":40023691,"last_update":"2016-11-28T16:42:51Z","owner_id":90000001,"planet_type":"plasma","num_pins":1},{"solar_system_id":30000379,"upgrade_level":0,"planet_id":40023697,"last_update":"2016-11-28T16:41:54Z","owner_id":90000001,"planet_type":"barren","num_pins":1}]},"schema":{"type":"array","maxItems":10,"items":{"type":"object","required":["solar_system_id","planet_id","planet_type","owner_id","last_update","upgrade_level","num_pins"],"properties":{"solar_system_id":{"type":"integer","format":"int32","title":"get_characters_character_id_planets_solar_system_id","description":"solar_system_id integer"},"planet_id":{"type":"integer","format":"int32","title":"get_characters_character_id_planets_planet_id","description":"planet_id integer"},"owner_id":{"type":"integer","format":"int32","title":"get_characters_character_id_planets_owner_id","description":"owner_id integer"},"upgrade_level":{"type":"integer","format":"int32","minimum":0,"maximum":5,"title":"get_characters_character_id_planets_upgrade_level","description":"upgrade_level integer"},"num_pins":{"type":"integer","format":"int32","minimum":1,"title":"get_characters_character_id_planets_num_pins","description":"num_pins integer"},"last_update":{"type":"string","format":"date-time","title":"get_characters_character_id_planets_last_update","description":"last_update string"},"planet_type":{"type":"string","enum":["temperate","barren","oceanic","ice","gas","lava","storm","plasma"],"title":"get_characters_character_id_planets_planet_type","description":"planet_type string"}},"title":"get_characters_character_id_planets_200_ok","description":"200 ok object"},"title":"get_characters_character_id_planets_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-planets.manage_planets.v1"]}],"operationId":"get_characters_character_id_planets","x-cached-seconds":600,"x-alternate-versions":["dev","legacy","v1"]}},"/v3/characters/{character_id}/planets/{planet_id}/":{"get":{"description":"Returns full details on the layout of a single planetary colony, including links, pins and routes. Note: Planetary information is only recalculated when the colony is viewed through the client. Information will not update until this criteria is met.\n\n---\n\nThis route is cached for up to 600 seconds","summary":"Get colony layout","tags":["Planetary Interaction"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"description":"Planet id of the target planet","format":"int32","in":"path","name":"planet_id","required":true,"type":"integer"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Colony layout","examples":{"application/json":{"links":[{"source_pin_id":1000000017021,"destination_pin_id":1000000017022,"link_level":0}],"pins":[{"longitude":0.717145933308,"is_running":true,"type_id":2254,"pin_id":1000000017021,"latitude":1.55087844973},{"longitude":0.709775584394,"is_running":true,"type_id":2256,"pin_id":1000000017022,"latitude":1.53360639935}],"routes":[{"source_pin_id":1000000017029,"quantity":20,"content_type_id":2393,"route_id":4,"destination_pin_id":1000000017030}]}},"schema":{"type":"object","required":["links","pins","routes"],"properties":{"links":{"type":"array","maxItems":500,"items":{"type":"object","required":["source_pin_id","destination_pin_id","link_level"],"properties":{"source_pin_id":{"type":"integer","format":"int64","title":"get_characters_character_id_planets_planet_id_source_pin_id","description":"source_pin_id integer"},"destination_pin_id":{"type":"integer","format":"int64","title":"get_characters_character_id_planets_planet_id_destination_pin_id","description":"destination_pin_id integer"},"link_level":{"type":"integer","format":"int32","minimum":0,"maximum":10,"title":"get_characters_character_id_planets_planet_id_link_level","description":"link_level integer"}},"title":"get_characters_character_id_planets_planet_id_link","description":"link object"},"title":"get_characters_character_id_planets_planet_id_links","description":"links array"},"pins":{"type":"array","maxItems":100,"items":{"type":"object","required":["pin_id","type_id","latitude","longitude"],"properties":{"latitude":{"type":"number","format":"float","title":"get_characters_character_id_planets_planet_id_latitude","description":"latitude number"},"longitude":{"type":"number","format":"float","title":"get_characters_character_id_planets_planet_id_longitude","description":"longitude number"},"pin_id":{"type":"integer","format":"int64","title":"get_characters_character_id_planets_planet_id_pin_id","description":"pin_id integer"},"type_id":{"type":"integer","format":"int32","title":"get_characters_character_id_planets_planet_id_type_id","description":"type_id integer"},"schematic_id":{"type":"integer","format":"int32","title":"get_characters_character_id_planets_planet_id_schematic_id","description":"schematic_id integer"},"extractor_details":{"type":"object","required":["heads"],"properties":{"heads":{"type":"array","maxItems":10,"items":{"type":"object","required":["head_id","latitude","longitude"],"properties":{"head_id":{"type":"integer","format":"int32","minimum":0,"maximum":9,"title":"get_characters_character_id_planets_planet_id_head_id","description":"head_id integer"},"latitude":{"type":"number","format":"float","title":"get_characters_character_id_planets_planet_id_latitude","description":"latitude number"},"longitude":{"type":"number","format":"float","title":"get_characters_character_id_planets_planet_id_longitude","description":"longitude number"}},"title":"get_characters_character_id_planets_planet_id_head","description":"head object"},"title":"get_characters_character_id_planets_planet_id_heads","description":"heads array"},"product_type_id":{"type":"integer","format":"int32","title":"get_characters_character_id_planets_planet_id_product_type_id","description":"product_type_id integer"},"cycle_time":{"description":"in seconds","type":"integer","format":"int32","title":"get_characters_character_id_planets_planet_id_cycle_time"},"head_radius":{"type":"number","format":"float","title":"get_characters_character_id_planets_planet_id_head_radius","description":"head_radius number"},"qty_per_cycle":{"type":"integer","format":"int32","title":"get_characters_character_id_planets_planet_id_qty_per_cycle","description":"qty_per_cycle integer"}},"title":"get_characters_character_id_planets_planet_id_extractor_details","description":"extractor_details object"},"factory_details":{"type":"object","required":["schematic_id"],"properties":{"schematic_id":{"type":"integer","format":"int32","title":"get_characters_character_id_planets_planet_id_schematic_id","description":"schematic_id integer"}},"title":"get_characters_character_id_planets_planet_id_factory_details","description":"factory_details object"},"contents":{"type":"array","maxItems":90,"items":{"type":"object","required":["type_id","amount"],"properties":{"type_id":{"type":"integer","format":"int32","title":"get_characters_character_id_planets_planet_id_type_id","description":"type_id integer"},"amount":{"type":"integer","format":"int64","title":"get_characters_character_id_planets_planet_id_amount","description":"amount integer"}},"title":"get_characters_character_id_planets_planet_id_content","description":"content object"},"title":"get_characters_character_id_planets_planet_id_contents","description":"contents array"},"install_time":{"type":"string","format":"date-time","title":"get_characters_character_id_planets_planet_id_install_time","description":"install_time string"},"expiry_time":{"type":"string","format":"date-time","title":"get_characters_character_id_planets_planet_id_expiry_time","description":"expiry_time string"},"last_cycle_start":{"type":"string","format":"date-time","title":"get_characters_character_id_planets_planet_id_last_cycle_start","description":"last_cycle_start string"}},"title":"get_characters_character_id_planets_planet_id_pin","description":"pin object"},"title":"get_characters_character_id_planets_planet_id_pins","description":"pins array"},"routes":{"type":"array","maxItems":1000,"items":{"type":"object","required":["route_id","source_pin_id","destination_pin_id","content_type_id","quantity"],"properties":{"route_id":{"type":"integer","format":"int64","title":"get_characters_character_id_planets_planet_id_route_id","description":"route_id integer"},"source_pin_id":{"type":"integer","format":"int64","title":"get_characters_character_id_planets_planet_id_source_pin_id","description":"source_pin_id integer"},"destination_pin_id":{"type":"integer","format":"int64","title":"get_characters_character_id_planets_planet_id_destination_pin_id","description":"destination_pin_id integer"},"content_type_id":{"type":"integer","format":"int32","title":"get_characters_character_id_planets_planet_id_content_type_id","description":"content_type_id integer"},"quantity":{"type":"number","format":"float","title":"get_characters_character_id_planets_planet_id_quantity","description":"quantity number"},"waypoints":{"type":"array","maxItems":5,"description":"list of pin ID waypoints","items":{"type":"integer","format":"int64","title":"get_characters_character_id_planets_planet_id_waypoint","description":"waypoint integer"},"title":"get_characters_character_id_planets_planet_id_waypoints"}},"title":"get_characters_character_id_planets_planet_id_route","description":"route object"},"title":"get_characters_character_id_planets_planet_id_routes","description":"routes array"}},"title":"get_characters_character_id_planets_planet_id_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"Colony not found","examples":{"application/json":{"error":"Colony not found"}},"schema":{"type":"object","description":"Colony not found","properties":{"error":{"type":"string","description":"error message","title":"get_characters_character_id_planets_planet_id_error"}},"title":"get_characters_character_id_planets_planet_id_not_found"}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-planets.manage_planets.v1"]}],"operationId":"get_characters_character_id_planets_planet_id","x-cached-seconds":600,"x-alternate-versions":["dev","v3"]}},"/v1/universe/schematics/{schematic_id}/":{"get":{"description":"Get information on a planetary factory schematic\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get schematic information","tags":["Planetary Interaction"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"schematic_id","in":"path","description":"A PI schematic ID","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Public data about a schematic","examples":{"application/json":{"schematic_name":"Bacteria","cycle_time":1800}},"schema":{"type":"object","required":["schematic_name","cycle_time"],"properties":{"schematic_name":{"type":"string","title":"get_universe_schematics_schematic_id_schematic_name","description":"schematic_name string"},"cycle_time":{"type":"integer","format":"int32","description":"Time in seconds to process a run","title":"get_universe_schematics_schematic_id_cycle_time"}},"title":"get_universe_schematics_schematic_id_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"Schematic not found","examples":{"application/json":{"error":"Schematic not found"}},"schema":{"type":"object","description":"Schematic not found","properties":{"error":{"type":"string","description":"error message","title":"get_universe_schematics_schematic_id_error"}},"title":"get_universe_schematics_schematic_id_not_found"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_universe_schematics_schematic_id","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/customs_offices/":{"get":{"description":"List customs offices owned by a corporation\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Director","summary":"List corporation customs offices","tags":["Planetary Interaction"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of customs offices and their settings","examples":{"application/json":[{"office_id":1000000014530,"system_id":30003657,"reinforce_exit_start":23,"reinforce_exit_end":1,"allow_alliance_access":false,"allow_access_with_standings":true,"standing_level":"neutral","corporation_tax_rate":0.02,"alliance_tax_rate":0.1,"excellent_standing_tax_rate":0.05,"good_standing_tax_rate":0.2,"neutral_standing_tax_rate":0.5}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["office_id","system_id","reinforce_exit_start","reinforce_exit_end","allow_alliance_access","allow_access_with_standings"],"properties":{"office_id":{"type":"integer","format":"int64","description":"unique ID of this customs office","title":"get_corporations_corporation_id_customs_offices_office_id"},"system_id":{"type":"integer","format":"int32","description":"ID of the solar system this customs office is located in","title":"get_corporations_corporation_id_customs_offices_system_id"},"reinforce_exit_start":{"type":"integer","format":"int32","minimum":0,"maximum":23,"description":"Together with reinforce_exit_end, marks a 2-hour period where this customs office could exit reinforcement mode during the day after initial attack","title":"get_corporations_corporation_id_customs_offices_reinforce_exit_start"},"reinforce_exit_end":{"type":"integer","format":"int32","minimum":0,"maximum":23,"title":"get_corporations_corporation_id_customs_offices_reinforce_exit_end","description":"reinforce_exit_end integer"},"corporation_tax_rate":{"type":"number","format":"float","title":"get_corporations_corporation_id_customs_offices_corporation_tax_rate","description":"corporation_tax_rate number"},"allow_alliance_access":{"type":"boolean","title":"get_corporations_corporation_id_customs_offices_allow_alliance_access","description":"allow_alliance_access boolean"},"alliance_tax_rate":{"type":"number","format":"float","description":"Only present if alliance access is allowed","title":"get_corporations_corporation_id_customs_offices_alliance_tax_rate"},"allow_access_with_standings":{"type":"boolean","description":"standing_level and any standing related tax rate only present when this is true","title":"get_corporations_corporation_id_customs_offices_allow_access_with_standings"},"standing_level":{"type":"string","enum":["bad","excellent","good","neutral","terrible"],"description":"Access is allowed only for entities with this level of standing or better","title":"get_corporations_corporation_id_customs_offices_standing_level"},"excellent_standing_tax_rate":{"type":"number","format":"float","description":"Tax rate for entities with excellent level of standing, only present if this level is allowed, same for all other standing related tax rates","title":"get_corporations_corporation_id_customs_offices_excellent_standing_tax_rate"},"good_standing_tax_rate":{"type":"number","format":"float","title":"get_corporations_corporation_id_customs_offices_good_standing_tax_rate","description":"good_standing_tax_rate number"},"neutral_standing_tax_rate":{"type":"number","format":"float","title":"get_corporations_corporation_id_customs_offices_neutral_standing_tax_rate","description":"neutral_standing_tax_rate number"},"bad_standing_tax_rate":{"type":"number","format":"float","title":"get_corporations_corporation_id_customs_offices_bad_standing_tax_rate","description":"bad_standing_tax_rate number"},"terrible_standing_tax_rate":{"type":"number","format":"float","title":"get_corporations_corporation_id_customs_offices_terrible_standing_tax_rate","description":"terrible_standing_tax_rate number"}},"title":"get_corporations_corporation_id_customs_offices_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_customs_offices_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Director"],"security":[{"evesso":["esi-planets.read_customs_offices.v1"]}],"operationId":"get_corporations_corporation_id_customs_offices","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/route/{origin}/{destination}/":{"get":{"description":"Get the systems between origin and destination\n\n---\n\nThis route is cached for up to 86400 seconds","summary":"Get route","tags":["Routes"],"parameters":[{"name":"avoid","in":"query","description":"avoid solar system ID(s)","type":"array","maxItems":100,"uniqueItems":true,"items":{"type":"integer","format":"int32"}},{"name":"connections","in":"query","type":"array","description":"connected solar system pairs","maxItems":100,"uniqueItems":true,"items":{"type":"array","minItems":2,"maxItems":2,"uniqueItems":true,"collectionFormat":"pipes","items":{"type":"integer","format":"int32"}}},{"$ref":"#/parameters/datasource"},{"name":"destination","in":"path","description":"destination solar system ID","type":"integer","format":"int32","required":true},{"name":"flag","in":"query","description":"route security preference","default":"shortest","type":"string","enum":["shortest","secure","insecure"]},{"name":"origin","in":"path","description":"origin solar system ID","type":"integer","format":"int32","required":true},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Solar systems in route from origin to destination","examples":{"application/json":[30002771,30002770,30002769,30002772]},"schema":{"type":"array","maxItems":1000,"description":"Solar systems in route","items":{"description":"Solar system in route","type":"integer","format":"int32","title":"Solar system ID"},"title":"get_route_origin_destination_ok"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"No route found","schema":{"type":"object","title":"get_route_origin_destination_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_route_origin_destination_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_route_origin_destination","x-cached-seconds":86400,"x-alternate-versions":["dev","legacy","v1"]}},"/v3/characters/{character_id}/search/":{"get":{"description":"Search for entities that match a given sub-string.\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Search on a string","tags":["Search"],"parameters":[{"name":"categories","in":"query","description":"Type of entities to search for","required":true,"type":"array","minItems":1,"maxItems":11,"uniqueItems":true,"items":{"type":"string","enum":["agent","alliance","character","constellation","corporation","faction","inventory_type","region","solar_system","station","structure"]}},{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"name":"search","in":"query","description":"The string to search on","required":true,"type":"string","minLength":3},{"name":"strict","in":"query","description":"Whether the search should be a strict match","type":"boolean","default":false},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of search results","examples":{"application/json":{"station":[60004588,60004594,60005725,60009106,60012721,60012724,60012727],"solar_system":[30002510]}},"schema":{"type":"object","properties":{"agent":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int32","title":"get_characters_character_id_search_agent","description":"agent integer"},"title":"get_characters_character_id_search_agent","description":"agent array"},"alliance":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int32","title":"get_characters_character_id_search_alliance","description":"alliance integer"},"title":"get_characters_character_id_search_alliance","description":"alliance array"},"character":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int32","title":"get_characters_character_id_search_character","description":"character integer"},"title":"get_characters_character_id_search_character","description":"character array"},"constellation":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int32","title":"get_characters_character_id_search_constellation","description":"constellation integer"},"title":"get_characters_character_id_search_constellation","description":"constellation array"},"corporation":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int32","title":"get_characters_character_id_search_corporation","description":"corporation integer"},"title":"get_characters_character_id_search_corporation","description":"corporation array"},"faction":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int32","title":"get_characters_character_id_search_faction","description":"faction integer"},"title":"get_characters_character_id_search_faction","description":"faction array"},"inventory_type":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int32","title":"get_characters_character_id_search_inventory_type","description":"inventory_type integer"},"title":"get_characters_character_id_search_inventory_type","description":"inventory_type array"},"region":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int32","title":"get_characters_character_id_search_region","description":"region integer"},"title":"get_characters_character_id_search_region","description":"region array"},"solar_system":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int32","title":"get_characters_character_id_search_solar_system","description":"solar_system integer"},"title":"get_characters_character_id_search_solar_system","description":"solar_system array"},"station":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int32","title":"get_characters_character_id_search_station","description":"station integer"},"title":"get_characters_character_id_search_station","description":"station array"},"structure":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int64","title":"get_characters_character_id_search_structure","description":"structure integer"},"title":"get_characters_character_id_search_structure","description":"structure array"}},"title":"get_characters_character_id_search_ok","description":"200 ok object"},"headers":{"Content-Language":{"description":"The language used in the response","type":"string","enum":["de","en-us","fr","ja","ru","zh"]},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-search.search_structures.v1"]}],"operationId":"get_characters_character_id_search","x-cached-seconds":3600,"x-alternate-versions":["dev","v3"]}},"/v2/search/":{"get":{"description":"Search for entities that match a given sub-string.\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Search on a string","tags":["Search"],"parameters":[{"name":"categories","in":"query","description":"Type of entities to search for","required":true,"type":"array","minItems":1,"maxItems":10,"uniqueItems":true,"items":{"type":"string","enum":["agent","alliance","character","constellation","corporation","faction","inventory_type","region","solar_system","station"]}},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"name":"search","in":"query","description":"The string to search on","required":true,"type":"string","minLength":3},{"name":"strict","in":"query","description":"Whether the search should be a strict match","type":"boolean","default":false},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of search results","examples":{"application/json":{"station":[60004588,60004594,60005725,60009106,60012721,60012724,60012727],"solar_system":[30002510]}},"schema":{"type":"object","properties":{"agent":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int32","title":"get_search_agent","description":"agent integer"},"title":"get_search_agent","description":"agent array"},"alliance":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int32","title":"get_search_alliance","description":"alliance integer"},"title":"get_search_alliance","description":"alliance array"},"character":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int32","title":"get_search_character","description":"character integer"},"title":"get_search_character","description":"character array"},"constellation":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int32","title":"get_search_constellation","description":"constellation integer"},"title":"get_search_constellation","description":"constellation array"},"corporation":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int32","title":"get_search_corporation","description":"corporation integer"},"title":"get_search_corporation","description":"corporation array"},"faction":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int32","title":"get_search_faction","description":"faction integer"},"title":"get_search_faction","description":"faction array"},"inventory_type":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int32","title":"get_search_inventory_type","description":"inventory_type integer"},"title":"get_search_inventory_type","description":"inventory_type array"},"region":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int32","title":"get_search_region","description":"region integer"},"title":"get_search_region","description":"region array"},"solar_system":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int32","title":"get_search_solar_system","description":"solar_system integer"},"title":"get_search_solar_system","description":"solar_system array"},"station":{"type":"array","maxItems":500,"items":{"type":"integer","format":"int32","title":"get_search_station","description":"station integer"},"title":"get_search_station","description":"station array"}},"title":"get_search_ok","description":"200 ok object"},"headers":{"Content-Language":{"description":"The language used in the response","type":"string","enum":["de","en-us","fr","ja","ru","zh"]},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_search","x-cached-seconds":3600,"x-alternate-versions":["dev","v2"]}},"/v2/characters/{character_id}/skillqueue/":{"get":{"description":"List the configured skill queue for the given character\n\n---\n\nThis route is cached for up to 120 seconds","summary":"Get character's skill queue","tags":["Skills"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"The current skill queue, sorted ascending by finishing time","examples":{"application/json":[{"skill_id":1,"finish_date":"2016-06-29T10:47:00Z","start_date":"2016-06-29T10:46:00Z","finished_level":3,"queue_position":0},{"skill_id":1,"finish_date":"2016-07-15T10:47:00Z","start_date":"2016-06-29T10:47:00Z","finished_level":4,"queue_position":1},{"skill_id":2,"finish_date":"2016-08-30T10:47:00Z","start_date":"2016-07-15T10:47:00Z","finished_level":2,"queue_position":2}]},"schema":{"type":"array","maxItems":51,"items":{"type":"object","required":["skill_id","finished_level","queue_position"],"properties":{"skill_id":{"type":"integer","format":"int32","title":"get_characters_character_id_skillqueue_skill_id","description":"skill_id integer"},"finish_date":{"type":"string","format":"date-time","title":"get_characters_character_id_skillqueue_finish_date","description":"finish_date string"},"start_date":{"type":"string","format":"date-time","title":"get_characters_character_id_skillqueue_start_date","description":"start_date string"},"finished_level":{"type":"integer","format":"int32","minimum":0,"maximum":5,"title":"get_characters_character_id_skillqueue_finished_level","description":"finished_level integer"},"queue_position":{"type":"integer","format":"int32","title":"get_characters_character_id_skillqueue_queue_position","description":"queue_position integer"},"training_start_sp":{"type":"integer","format":"int32","title":"get_characters_character_id_skillqueue_training_start_sp","description":"training_start_sp integer"},"level_end_sp":{"type":"integer","format":"int32","title":"get_characters_character_id_skillqueue_level_end_sp","description":"level_end_sp integer"},"level_start_sp":{"type":"integer","format":"int32","description":"Amount of SP that was in the skill when it started training it's current level. Used to calculate % of current level complete.","title":"get_characters_character_id_skillqueue_level_start_sp"}},"title":"get_characters_character_id_skillqueue_200_ok","description":"200 ok object"},"title":"get_characters_character_id_skillqueue_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-skills.read_skillqueue.v1"]}],"operationId":"get_characters_character_id_skillqueue","x-cached-seconds":120,"x-alternate-versions":["dev","legacy","v2"]}},"/v4/characters/{character_id}/skills/":{"get":{"description":"List all trained skills for the given character\n\n---\n\nThis route is cached for up to 120 seconds","summary":"Get character skills","tags":["Skills"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Known skills for the character","examples":{"application/json":{"skills":[{"skill_id":1,"skillpoints_in_skill":10000,"trained_skill_level":4,"active_skill_level":3},{"skill_id":2,"skillpoints_in_skill":10000,"trained_skill_level":1,"active_skill_level":1}],"total_sp":20000}},"schema":{"type":"object","required":["skills","total_sp"],"properties":{"skills":{"type":"array","maxItems":1000,"items":{"type":"object","required":["skill_id","skillpoints_in_skill","trained_skill_level","active_skill_level"],"properties":{"skill_id":{"type":"integer","format":"int32","title":"get_characters_character_id_skills_skill_id","description":"skill_id integer"},"skillpoints_in_skill":{"type":"integer","format":"int64","title":"get_characters_character_id_skills_skillpoints_in_skill","description":"skillpoints_in_skill integer"},"trained_skill_level":{"type":"integer","format":"int32","title":"get_characters_character_id_skills_trained_skill_level","description":"trained_skill_level integer"},"active_skill_level":{"type":"integer","format":"int32","title":"get_characters_character_id_skills_active_skill_level","description":"active_skill_level integer"}},"title":"get_characters_character_id_skills_skill","description":"skill object"},"title":"get_characters_character_id_skills_skills","description":"skills array"},"total_sp":{"type":"integer","format":"int64","title":"get_characters_character_id_skills_total_sp","description":"total_sp integer"},"unallocated_sp":{"type":"integer","format":"int32","description":"Skill points available to be assigned","title":"get_characters_character_id_skills_unallocated_sp"}},"title":"get_characters_character_id_skills_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-skills.read_skills.v1"]}],"operationId":"get_characters_character_id_skills","x-cached-seconds":120,"x-alternate-versions":["dev","v4"]}},"/v1/characters/{character_id}/attributes/":{"get":{"description":"Return attributes of a character\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get character attributes","tags":["Skills"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Attributes of a character","examples":{"application/json":{"charisma":20,"intelligence":20,"memory":20,"perception":20,"willpower":20}},"schema":{"type":"object","required":["charisma","intelligence","memory","perception","willpower"],"properties":{"charisma":{"type":"integer","format":"int32","title":"get_characters_character_id_attributes_charisma","description":"charisma integer"},"intelligence":{"type":"integer","format":"int32","title":"get_characters_character_id_attributes_intelligence","description":"intelligence integer"},"memory":{"type":"integer","format":"int32","title":"get_characters_character_id_attributes_memory","description":"memory integer"},"perception":{"type":"integer","format":"int32","title":"get_characters_character_id_attributes_perception","description":"perception integer"},"willpower":{"type":"integer","format":"int32","title":"get_characters_character_id_attributes_willpower","description":"willpower integer"},"bonus_remaps":{"type":"integer","format":"int32","description":"Number of available bonus character neural remaps","title":"get_characters_character_id_attributes_bonus_remaps"},"last_remap_date":{"type":"string","format":"date-time","description":"Datetime of last neural remap, including usage of bonus remaps","title":"get_characters_character_id_attributes_last_remap_date"},"accrued_remap_cooldown_date":{"type":"string","format":"date-time","description":"Neural remapping cooldown after a character uses remap accrued over time","title":"get_characters_character_id_attributes_accrued_remap_cooldown_date"}},"title":"get_characters_character_id_attributes_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-skills.read_skills.v1"]}],"operationId":"get_characters_character_id_attributes","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/sovereignty/structures/":{"get":{"description":"Shows sovereignty data for structures.\n\n---\n\nThis route is cached for up to 120 seconds","summary":"List sovereignty structures","tags":["Sovereignty"],"responses":{"200":{"description":"A list of sovereignty structures","examples":{"application/json":[{"alliance_id":498125261,"solar_system_id":30000570,"structure_id":1018253388776,"structure_type_id":32226,"vulnerability_occupancy_level":2,"vulnerable_start_time":"2016-10-28T20:30:00Z","vulnerable_end_time":"2016-10-29T05:30:00Z"}]},"schema":{"type":"array","maxItems":10000,"items":{"type":"object","required":["alliance_id","solar_system_id","structure_id","structure_type_id"],"properties":{"alliance_id":{"type":"integer","format":"int32","description":"The alliance that owns the structure.\n","title":"get_sovereignty_structures_alliance_id"},"solar_system_id":{"type":"integer","format":"int32","description":"Solar system in which the structure is located.\n","title":"get_sovereignty_structures_solar_system_id"},"structure_id":{"type":"integer","format":"int64","description":"Unique item ID for this structure.","title":"get_sovereignty_structures_structure_id"},"structure_type_id":{"type":"integer","format":"int32","description":"A reference to the type of structure this is.\n","title":"get_sovereignty_structures_structure_type_id"},"vulnerability_occupancy_level":{"type":"number","format":"float","description":"The occupancy level for the next or current vulnerability window. This takes into account all development indexes and capital system bonuses. Also known as Activity Defense Multiplier from in the client. It increases the time that attackers must spend using their entosis links on the structure.\n","title":"get_sovereignty_structures_vulnerability_occupancy_level"},"vulnerable_start_time":{"type":"string","format":"date-time","description":"The next time at which the structure will become vulnerable. Or the start time of the current window if current time is between this and vulnerableEndTime.\n","title":"get_sovereignty_structures_vulnerable_start_time"},"vulnerable_end_time":{"type":"string","format":"date-time","description":"The time at which the next or current vulnerability window ends. At the end of a vulnerability window the next window is recalculated and locked in along with the vulnerabilityOccupancyLevel. If the structure is not in 100% entosis control of the defender, it will go in to 'overtime' and stay vulnerable for as long as that situation persists. Only once the defenders have 100% entosis control and has the vulnerableEndTime passed does the vulnerability interval expire and a new one is calculated.\n","title":"get_sovereignty_structures_vulnerable_end_time"}},"title":"get_sovereignty_structures_200_ok","description":"200 ok object"},"title":"get_sovereignty_structures_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_sovereignty_structures","x-cached-seconds":120,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/sovereignty/campaigns/":{"get":{"description":"Shows sovereignty data for campaigns.\n\n---\n\nThis route is cached for up to 5 seconds","summary":"List sovereignty campaigns","tags":["Sovereignty"],"responses":{"200":{"description":"A list of sovereignty campaigns","examples":{"application/json":[{"campaign_id":32833,"structure_id":61001096,"solar_system_id":30000856,"constellation_id":20000125,"event_type":"station_defense","start_time":"2016-10-29T14:34:40Z","defender_id":1695357456,"defender_score":0.6,"attackers_score":0.4}]},"schema":{"type":"array","maxItems":10000,"items":{"type":"object","required":["campaign_id","structure_id","solar_system_id","constellation_id","event_type","start_time"],"properties":{"campaign_id":{"type":"integer","format":"int32","description":"Unique ID for this campaign.","title":"get_sovereignty_campaigns_campaign_id"},"structure_id":{"type":"integer","format":"int64","description":"The structure item ID that is related to this campaign.\n","title":"get_sovereignty_campaigns_structure_id"},"solar_system_id":{"type":"integer","format":"int32","description":"The solar system the structure is located in.\n","title":"get_sovereignty_campaigns_solar_system_id"},"constellation_id":{"type":"integer","format":"int32","description":"The constellation in which the campaign will take place.\n","title":"get_sovereignty_campaigns_constellation_id"},"event_type":{"type":"string","description":"Type of event this campaign is for. tcu_defense, ihub_defense and station_defense are referred to as \"Defense Events\", station_freeport as \"Freeport Events\".\n","enum":["tcu_defense","ihub_defense","station_defense","station_freeport"],"title":"get_sovereignty_campaigns_event_type"},"start_time":{"type":"string","format":"date-time","description":"Time the event is scheduled to start.\n","title":"get_sovereignty_campaigns_start_time"},"defender_id":{"type":"integer","format":"int32","description":"Defending alliance, only present in Defense Events\n","title":"get_sovereignty_campaigns_defender_id"},"defender_score":{"type":"number","format":"float","description":"Score for the defending alliance, only present in Defense Events.\n","title":"get_sovereignty_campaigns_defender_score"},"attackers_score":{"type":"number","format":"float","description":"Score for all attacking parties, only present in Defense Events.\n","title":"get_sovereignty_campaigns_attackers_score"},"participants":{"type":"array","description":"Alliance participating and their respective scores, only present in Freeport Events.\n","maxItems":5000,"items":{"type":"object","required":["alliance_id","score"],"properties":{"alliance_id":{"type":"integer","format":"int32","title":"get_sovereignty_campaigns_alliance_id","description":"alliance_id integer"},"score":{"type":"number","format":"float","title":"get_sovereignty_campaigns_score","description":"score number"}},"title":"get_sovereignty_campaigns_participant","description":"participant object"},"title":"get_sovereignty_campaigns_participants"}},"title":"get_sovereignty_campaigns_200_ok","description":"200 ok object"},"title":"get_sovereignty_campaigns_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_sovereignty_campaigns","x-cached-seconds":5,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/sovereignty/map/":{"get":{"description":"Shows sovereignty information for solar systems\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"List sovereignty of systems","tags":["Sovereignty"],"responses":{"200":{"description":"A list of sovereignty information for solar systems in New Eden","examples":{"application/json":[{"system_id":30045334,"faction_id":500001}]},"schema":{"type":"array","maxItems":10000,"items":{"type":"object","required":["system_id"],"properties":{"system_id":{"type":"integer","format":"int32","title":"get_sovereignty_map_system_id","description":"system_id integer"},"alliance_id":{"type":"integer","format":"int32","title":"get_sovereignty_map_alliance_id","description":"alliance_id integer"},"corporation_id":{"type":"integer","format":"int32","title":"get_sovereignty_map_corporation_id","description":"corporation_id integer"},"faction_id":{"type":"integer","format":"int32","title":"get_sovereignty_map_faction_id","description":"faction_id integer"}},"title":"get_sovereignty_map_200_ok","description":"200 ok object"},"title":"get_sovereignty_map_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_sovereignty_map","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/status/":{"get":{"description":"EVE Server status\n\n---\n\nThis route is cached for up to 30 seconds","summary":"Retrieve the uptime and player counts","tags":["Status"],"responses":{"200":{"description":"Server status","examples":{"application/json":{"start_time":"2017-01-02T12:34:56Z","players":12345,"server_version":"1132976"}},"schema":{"type":"object","required":["start_time","players","server_version"],"properties":{"start_time":{"type":"string","format":"date-time","description":"Server start timestamp","title":"get_status_start_time"},"players":{"type":"integer","description":"Current online player count","title":"get_status_players"},"server_version":{"type":"string","description":"Running version as string","title":"get_status_server_version"},"vip":{"type":"boolean","description":"If the server is in VIP mode","title":"get_status_vip"}},"title":"get_status_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_status","x-cached-seconds":30,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/ids/":{"post":{"description":"Resolve a set of names to IDs in the following categories: agents, alliances, characters, constellations, corporations factions, inventory_types, regions, stations, and systems. Only exact matches will be returned. All names searched for are cached for 12 hours.\n\n---\n","summary":"Bulk names to IDs","tags":["Universe"],"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"name":"names","in":"body","description":"The names to resolve","required":true,"schema":{"type":"array","minItems":1,"maxItems":1000,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":100,"title":"post_universe_ids_name","description":"name string"},"example":["CCP Zoetrope"],"title":"post_universe_ids_names","description":"names array"}},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of id/name associations for a set of names divided by category. Any name passed in that did not have a match will be ommitted.","examples":{"application/json":{"characters":[{"id":95465499,"name":"CCP Bartender"},{"id":2112625428,"name":"CCP Zoetrope"}],"systems":[{"id":30000142,"name":"Jita"}]}},"schema":{"type":"object","properties":{"agents":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"integer","format":"int32","title":"post_universe_ids_id","description":"id integer"},"name":{"type":"string","title":"post_universe_ids_name","description":"name string"}},"title":"post_universe_ids_agent","description":"agent object"},"title":"post_universe_ids_agents","description":"agents array"},"alliances":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"integer","format":"int32","title":"post_universe_ids_id","description":"id integer"},"name":{"type":"string","title":"post_universe_ids_name","description":"name string"}},"title":"post_universe_ids_alliance","description":"alliance object"},"title":"post_universe_ids_alliances","description":"alliances array"},"characters":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"integer","format":"int32","title":"post_universe_ids_id","description":"id integer"},"name":{"type":"string","title":"post_universe_ids_name","description":"name string"}},"title":"post_universe_ids_character","description":"character object"},"title":"post_universe_ids_characters","description":"characters array"},"constellations":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"integer","format":"int32","title":"post_universe_ids_id","description":"id integer"},"name":{"type":"string","title":"post_universe_ids_name","description":"name string"}},"title":"post_universe_ids_constellation","description":"constellation object"},"title":"post_universe_ids_constellations","description":"constellations array"},"corporations":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"integer","format":"int32","title":"post_universe_ids_id","description":"id integer"},"name":{"type":"string","title":"post_universe_ids_name","description":"name string"}},"title":"post_universe_ids_corporation","description":"corporation object"},"title":"post_universe_ids_corporations","description":"corporations array"},"factions":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"integer","format":"int32","title":"post_universe_ids_id","description":"id integer"},"name":{"type":"string","title":"post_universe_ids_name","description":"name string"}},"title":"post_universe_ids_faction","description":"faction object"},"title":"post_universe_ids_factions","description":"factions array"},"inventory_types":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"integer","format":"int32","title":"post_universe_ids_id","description":"id integer"},"name":{"type":"string","title":"post_universe_ids_name","description":"name string"}},"title":"post_universe_ids_inventory_type","description":"inventory_type object"},"title":"post_universe_ids_inventory_types","description":"inventory_types array"},"regions":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"integer","format":"int32","title":"post_universe_ids_id","description":"id integer"},"name":{"type":"string","title":"post_universe_ids_name","description":"name string"}},"title":"post_universe_ids_region","description":"region object"},"title":"post_universe_ids_regions","description":"regions array"},"systems":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"integer","format":"int32","title":"post_universe_ids_id","description":"id integer"},"name":{"type":"string","title":"post_universe_ids_name","description":"name string"}},"title":"post_universe_ids_system","description":"system object"},"title":"post_universe_ids_systems","description":"systems array"},"stations":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"integer","format":"int32","title":"post_universe_ids_id","description":"id integer"},"name":{"type":"string","title":"post_universe_ids_name","description":"name string"}},"title":"post_universe_ids_station","description":"station object"},"title":"post_universe_ids_stations","description":"stations array"}},"title":"post_universe_ids_ok","description":"200 ok object"},"headers":{"Content-Language":{"description":"The language used in the response","type":"string","enum":["de","en-us","fr","ja","ru","zh"]}}},"503":{"description":"Search backend is unreachable, try again later.","schema":{"type":"object","title":"post_universe_ids_service_unavailable","description":"Service unavailable","properties":{"error":{"type":"string","description":"Service unavailable message","title":"post_universe_ids_503_service_unavailable"}}},"examples":{"application/json":{"error":"Service unavailable message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"post_universe_ids","x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/planets/{planet_id}/":{"get":{"description":"Get information on a planet\n\n---\n\nThis route expires daily at 11:05","summary":"Get planet information","tags":["Universe"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"planet_id","in":"path","required":true,"type":"integer","format":"int32","description":"planet_id integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a planet","examples":{"application/json":{"planet_id":40000046,"name":"Akpivem III","type_id":13,"position":{"x":-189226344497,"y":9901605317,"z":-254852632979},"system_id":30000003}},"schema":{"type":"object","required":["planet_id","name","type_id","position","system_id"],"properties":{"planet_id":{"type":"integer","format":"int32","title":"get_universe_planets_planet_id_planet_id","description":"planet_id integer"},"name":{"type":"string","title":"get_universe_planets_planet_id_name","description":"name string"},"type_id":{"type":"integer","format":"int32","title":"get_universe_planets_planet_id_type_id","description":"type_id integer"},"position":{"type":"object","required":["x","y","z"],"properties":{"x":{"type":"number","format":"double","title":"get_universe_planets_planet_id_x","description":"x number"},"y":{"type":"number","format":"double","title":"get_universe_planets_planet_id_y","description":"y number"},"z":{"type":"number","format":"double","title":"get_universe_planets_planet_id_z","description":"z number"}},"title":"get_universe_planets_planet_id_position","description":"position object"},"system_id":{"type":"integer","format":"int32","description":"The solar system this planet is in","title":"get_universe_planets_planet_id_system_id"}},"title":"get_universe_planets_planet_id_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"Planet not found","schema":{"type":"object","title":"get_universe_planets_planet_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_universe_planets_planet_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_universe_planets_planet_id","x-alternate-versions":["dev","legacy","v1"]}},"/v2/universe/stations/{station_id}/":{"get":{"description":"Get information on a station\n\n---\n\nThis route is cached for up to 300 seconds","summary":"Get station information","tags":["Universe"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"station_id","in":"path","required":true,"type":"integer","format":"int32","description":"station_id integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a station","examples":{"application/json":{"station_id":60000277,"name":"Jakanerva III - Moon 15 - Prompt Delivery Storage","type_id":1531,"position":{"x":165632286720,"y":2771804160,"z":-2455331266560},"system_id":30000148,"reprocessing_efficiency":0.5,"reprocessing_stations_take":0.05,"max_dockable_ship_volume":50000000,"office_rental_cost":10000,"services":["courier-missions","reprocessing-plant","market","repair-facilities","fitting","news","storage","insurance","docking","office-rental","loyalty-point-store","navy-offices"],"owner":1000003,"race_id":1}},"schema":{"type":"object","required":["station_id","name","type_id","position","system_id","reprocessing_efficiency","reprocessing_stations_take","max_dockable_ship_volume","office_rental_cost","services"],"properties":{"station_id":{"type":"integer","format":"int32","title":"get_universe_stations_station_id_station_id","description":"station_id integer"},"name":{"type":"string","title":"get_universe_stations_station_id_name","description":"name string"},"owner":{"type":"integer","format":"int32","description":"ID of the corporation that controls this station","title":"get_universe_stations_station_id_owner"},"type_id":{"type":"integer","format":"int32","title":"get_universe_stations_station_id_type_id","description":"type_id integer"},"race_id":{"type":"integer","format":"int32","title":"get_universe_stations_station_id_race_id","description":"race_id integer"},"position":{"type":"object","required":["x","y","z"],"properties":{"x":{"type":"number","format":"double","title":"get_universe_stations_station_id_x","description":"x number"},"y":{"type":"number","format":"double","title":"get_universe_stations_station_id_y","description":"y number"},"z":{"type":"number","format":"double","title":"get_universe_stations_station_id_z","description":"z number"}},"title":"get_universe_stations_station_id_position","description":"position object"},"system_id":{"type":"integer","format":"int32","description":"The solar system this station is in","title":"get_universe_stations_station_id_system_id"},"reprocessing_efficiency":{"type":"number","format":"float","title":"get_universe_stations_station_id_reprocessing_efficiency","description":"reprocessing_efficiency number"},"reprocessing_stations_take":{"type":"number","format":"float","title":"get_universe_stations_station_id_reprocessing_stations_take","description":"reprocessing_stations_take number"},"max_dockable_ship_volume":{"type":"number","format":"float","title":"get_universe_stations_station_id_max_dockable_ship_volume","description":"max_dockable_ship_volume number"},"office_rental_cost":{"type":"number","format":"float","title":"get_universe_stations_station_id_office_rental_cost","description":"office_rental_cost number"},"services":{"type":"array","maxItems":30,"items":{"type":"string","enum":["bounty-missions","assasination-missions","courier-missions","interbus","reprocessing-plant","refinery","market","black-market","stock-exchange","cloning","surgery","dna-therapy","repair-facilities","factory","labratory","gambling","fitting","paintshop","news","storage","insurance","docking","office-rental","jump-clone-facility","loyalty-point-store","navy-offices","security-offices"],"title":"get_universe_stations_station_id_service","description":"service string"},"title":"get_universe_stations_station_id_services","description":"services array"}},"title":"get_universe_stations_station_id_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"Station not found","schema":{"type":"object","title":"get_universe_stations_station_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_universe_stations_station_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_universe_stations_station_id","x-cached-seconds":300,"x-alternate-versions":["dev","v2"]}},"/v1/universe/structures/{structure_id}/":{"get":{"description":"Returns information on requested structure, if you are on the ACL. Otherwise, returns \"Forbidden\" for all inputs.\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get structure information","tags":["Universe"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"structure_id","in":"path","description":"An Eve structure ID","required":true,"type":"integer","format":"int64"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Data about a structure","examples":{"application/json":{"name":"V-3YG7 VI - The Capital","solar_system_id":30000142}},"schema":{"type":"object","required":["name","solar_system_id"],"properties":{"name":{"type":"string","description":"The full name of the structure","title":"get_universe_structures_structure_id_name"},"solar_system_id":{"type":"integer","format":"int32","title":"get_universe_structures_structure_id_solar_system_id","description":"solar_system_id integer"},"type_id":{"type":"integer","format":"int32","title":"get_universe_structures_structure_id_type_id","description":"type_id integer"},"position":{"type":"object","description":"Coordinates of the structure in Cartesian space relative to the Sun, in metres.\n","required":["x","y","z"],"properties":{"x":{"type":"number","format":"double","title":"get_universe_structures_structure_id_x","description":"x number"},"y":{"type":"number","format":"double","title":"get_universe_structures_structure_id_y","description":"y number"},"z":{"type":"number","format":"double","title":"get_universe_structures_structure_id_z","description":"z number"}},"title":"get_universe_structures_structure_id_position"}},"title":"get_universe_structures_structure_id_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"Structure not found","schema":{"type":"object","title":"get_universe_structures_structure_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_universe_structures_structure_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-universe.read_structures.v1"]}],"operationId":"get_universe_structures_structure_id","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v3/universe/systems/{system_id}/":{"get":{"description":"Get information on a solar system\n\n---\n\nThis route expires daily at 11:05","summary":"Get solar system information","tags":["Universe"],"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"name":"system_id","in":"path","required":true,"type":"integer","format":"int32","description":"system_id integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a solar system","examples":{"application/json":{"system_id":30000003,"name":"Akpivem","position":{"x":-91174141133075340,"y":43938227486247170,"z":-56482824383339900},"security_status":0.8462923765182495,"constellation_id":20000001,"planets":[{"planet_id":40000041,"moons":[40000042]},{"planet_id":40000043}],"stargates":[50000342],"star_id":40000040,"security_class":"B"}},"schema":{"type":"object","required":["star_id","system_id","name","position","security_status","constellation_id","planets"],"properties":{"star_id":{"type":"integer","format":"int32","title":"get_universe_systems_system_id_star_id","description":"star_id integer"},"system_id":{"type":"integer","format":"int32","title":"get_universe_systems_system_id_system_id","description":"system_id integer"},"name":{"type":"string","title":"get_universe_systems_system_id_name","description":"name string"},"position":{"type":"object","required":["x","y","z"],"properties":{"x":{"type":"number","format":"double","title":"get_universe_systems_system_id_x","description":"x number"},"y":{"type":"number","format":"double","title":"get_universe_systems_system_id_y","description":"y number"},"z":{"type":"number","format":"double","title":"get_universe_systems_system_id_z","description":"z number"}},"title":"get_universe_systems_system_id_position","description":"position object"},"security_status":{"type":"number","format":"float","title":"get_universe_systems_system_id_security_status","description":"security_status number"},"security_class":{"type":"string","title":"get_universe_systems_system_id_security_class","description":"security_class string"},"constellation_id":{"type":"integer","format":"int32","description":"The constellation this solar system is in","title":"get_universe_systems_system_id_constellation_id"},"planets":{"type":"array","maxItems":1000,"items":{"type":"object","required":["planet_id"],"properties":{"planet_id":{"type":"integer","format":"int32","title":"get_universe_systems_system_id_planet_id","description":"planet_id integer"},"moons":{"type":"array","maxItems":1000,"items":{"type":"integer","format":"int32","title":"get_universe_systems_system_id_moon","description":"moon integer"},"title":"get_universe_systems_system_id_moons","description":"moons array"}},"title":"get_universe_systems_system_id_planet","description":"planet object"},"title":"get_universe_systems_system_id_planets","description":"planets array"},"stargates":{"type":"array","maxItems":25,"items":{"type":"integer","format":"int32","title":"get_universe_systems_system_id_stargate","description":"stargate integer"},"title":"get_universe_systems_system_id_stargates","description":"stargates array"},"stations":{"type":"array","maxItems":25,"items":{"type":"integer","format":"int32","title":"get_universe_systems_system_id_station","description":"station integer"},"title":"get_universe_systems_system_id_stations","description":"stations array"}},"title":"get_universe_systems_system_id_ok","description":"200 ok object"},"headers":{"Content-Language":{"description":"The language used in the response","type":"string","enum":["de","en-us","fr","ja","ru","zh"]},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"Solar system not found","schema":{"type":"object","title":"get_universe_systems_system_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_universe_systems_system_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_universe_systems_system_id","x-alternate-versions":["dev","v3"]}},"/v1/universe/systems/":{"get":{"description":"Get a list of solar systems\n\n---\n\nThis route expires daily at 11:05","summary":"Get solar systems","tags":["Universe"],"responses":{"200":{"description":"A list of solar system ids","examples":{"application/json":[30000001,30000002]},"schema":{"type":"array","maxItems":10000,"items":{"type":"integer","format":"int32","title":"get_universe_systems_200_ok","description":"200 ok integer"},"title":"get_universe_systems_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_universe_systems","x-alternate-versions":["dev","legacy","v1"]}},"/v3/universe/types/{type_id}/":{"get":{"description":"Get information on a type\n\n---\n\nThis route expires daily at 11:05","summary":"Get type information","tags":["Universe"],"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"name":"type_id","in":"path","description":"An Eve item type ID","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a type","examples":{"application/json":{"type_id":587,"name":"Rifter","description":"The Rifter is a...","published":true,"group_id":25}},"schema":{"type":"object","required":["type_id","name","description","published","group_id"],"properties":{"type_id":{"type":"integer","format":"int32","title":"get_universe_types_type_id_type_id","description":"type_id integer"},"name":{"type":"string","title":"get_universe_types_type_id_name","description":"name string"},"description":{"type":"string","title":"get_universe_types_type_id_description","description":"description string"},"published":{"type":"boolean","title":"get_universe_types_type_id_published","description":"published boolean"},"group_id":{"type":"integer","format":"int32","title":"get_universe_types_type_id_group_id","description":"group_id integer"},"market_group_id":{"type":"integer","format":"int32","description":"This only exists for types that can be put on the market","title":"get_universe_types_type_id_market_group_id"},"radius":{"type":"number","format":"float","title":"get_universe_types_type_id_radius","description":"radius number"},"volume":{"type":"number","format":"float","title":"get_universe_types_type_id_volume","description":"volume number"},"packaged_volume":{"type":"number","format":"float","title":"get_universe_types_type_id_packaged_volume","description":"packaged_volume number"},"icon_id":{"type":"integer","format":"int32","title":"get_universe_types_type_id_icon_id","description":"icon_id integer"},"capacity":{"type":"number","format":"float","title":"get_universe_types_type_id_capacity","description":"capacity number"},"portion_size":{"type":"integer","format":"int32","title":"get_universe_types_type_id_portion_size","description":"portion_size integer"},"mass":{"type":"number","format":"float","title":"get_universe_types_type_id_mass","description":"mass number"},"graphic_id":{"type":"integer","format":"int32","title":"get_universe_types_type_id_graphic_id","description":"graphic_id integer"},"dogma_attributes":{"type":"array","maxItems":1000,"items":{"type":"object","required":["attribute_id","value"],"properties":{"attribute_id":{"type":"integer","format":"int32","title":"get_universe_types_type_id_attribute_id","description":"attribute_id integer"},"value":{"type":"number","format":"float","title":"get_universe_types_type_id_value","description":"value number"}},"title":"get_universe_types_type_id_dogma_attribute","description":"dogma_attribute object"},"title":"get_universe_types_type_id_dogma_attributes","description":"dogma_attributes array"},"dogma_effects":{"type":"array","maxItems":1000,"items":{"type":"object","required":["effect_id","is_default"],"properties":{"effect_id":{"type":"integer","format":"int32","title":"get_universe_types_type_id_effect_id","description":"effect_id integer"},"is_default":{"type":"boolean","title":"get_universe_types_type_id_is_default","description":"is_default boolean"}},"title":"get_universe_types_type_id_dogma_effect","description":"dogma_effect object"},"title":"get_universe_types_type_id_dogma_effects","description":"dogma_effects array"}},"title":"get_universe_types_type_id_ok","description":"200 ok object"},"headers":{"Content-Language":{"description":"The language used in the response","type":"string","enum":["de","en-us","fr","ja","ru","zh"]},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"Type not found","schema":{"type":"object","title":"get_universe_types_type_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_universe_types_type_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_universe_types_type_id","x-alternate-versions":["dev","v3"]}},"/v1/universe/types/":{"get":{"description":"Get a list of type ids\n\n---\n\nThis route expires daily at 11:05","summary":"Get types","tags":["Universe"],"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of type ids","examples":{"application/json":[1,2,3]},"schema":{"type":"array","maxItems":1000,"items":{"type":"integer","format":"int32","title":"get_universe_types_200_ok","description":"200 ok integer"},"title":"get_universe_types_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_universe_types","x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/groups/":{"get":{"description":"Get a list of item groups\n\n---\n\nThis route expires daily at 11:05","summary":"Get item groups","tags":["Universe"],"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of item group ids","examples":{"application/json":[1,2,3]},"schema":{"type":"array","maxItems":1000,"items":{"type":"integer","format":"int32","title":"get_universe_groups_200_ok","description":"200 ok integer"},"title":"get_universe_groups_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_universe_groups","x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/groups/{group_id}/":{"get":{"description":"Get information on an item group\n\n---\n\nThis route expires daily at 11:05","summary":"Get item group information","tags":["Universe"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"group_id","in":"path","description":"An Eve item group ID","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about an item group","examples":{"application/json":{"group_id":25,"name":"Frigate","published":true,"category_id":6,"types":[587,586,585]}},"schema":{"type":"object","required":["group_id","name","published","category_id","types"],"properties":{"group_id":{"type":"integer","format":"int32","title":"get_universe_groups_group_id_group_id","description":"group_id integer"},"name":{"type":"string","title":"get_universe_groups_group_id_name","description":"name string"},"published":{"type":"boolean","title":"get_universe_groups_group_id_published","description":"published boolean"},"category_id":{"type":"integer","format":"int32","title":"get_universe_groups_group_id_category_id","description":"category_id integer"},"types":{"type":"array","maxItems":10000,"items":{"type":"integer","format":"int32","title":"get_universe_groups_group_id_type","description":"type integer"},"title":"get_universe_groups_group_id_types","description":"types array"}},"title":"get_universe_groups_group_id_ok","description":"200 ok object"},"headers":{"Content-Language":{"description":"The language used in the response","type":"string","enum":["de","en-us","fr","ja","ru","zh"]},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"Group not found","schema":{"type":"object","title":"get_universe_groups_group_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_universe_groups_group_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_universe_groups_group_id","x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/categories/":{"get":{"description":"Get a list of item categories\n\n---\n\nThis route expires daily at 11:05","summary":"Get item categories","tags":["Universe"],"responses":{"200":{"description":"A list of item category ids","examples":{"application/json":[1,2,3]},"schema":{"type":"array","maxItems":10000,"items":{"type":"integer","format":"int32","title":"get_universe_categories_200_ok","description":"200 ok integer"},"title":"get_universe_categories_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_universe_categories","x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/categories/{category_id}/":{"get":{"description":"Get information of an item category\n\n---\n\nThis route expires daily at 11:05","summary":"Get item category information","tags":["Universe"],"parameters":[{"name":"category_id","in":"path","description":"An Eve item category ID","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about an item category","examples":{"application/json":{"category_id":6,"name":"Ship","published":true,"groups":[25,26,27]}},"schema":{"type":"object","required":["category_id","name","published","groups"],"properties":{"category_id":{"type":"integer","format":"int32","title":"get_universe_categories_category_id_category_id","description":"category_id integer"},"name":{"type":"string","title":"get_universe_categories_category_id_name","description":"name string"},"published":{"type":"boolean","title":"get_universe_categories_category_id_published","description":"published boolean"},"groups":{"type":"array","maxItems":10000,"items":{"type":"integer","format":"int32","title":"get_universe_categories_category_id_group","description":"group integer"},"title":"get_universe_categories_category_id_groups","description":"groups array"}},"title":"get_universe_categories_category_id_ok","description":"200 ok object"},"headers":{"Content-Language":{"description":"The language used in the response","type":"string","enum":["de","en-us","fr","ja","ru","zh"]},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"Category not found","schema":{"type":"object","title":"get_universe_categories_category_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_universe_categories_category_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_universe_categories_category_id","x-alternate-versions":["dev","legacy","v1"]}},"/v2/universe/names/":{"post":{"description":"Resolve a set of IDs to names and categories. Supported ID's for resolving are: Characters, Corporations, Alliances, Stations, Solar Systems, Constellations, Regions, Types.\n\n---\n","summary":"Get names and categories for a set of ID's","tags":["Universe"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"ids","in":"body","description":"The ids to resolve","required":true,"schema":{"type":"array","minItems":1,"maxItems":1000,"uniqueItems":true,"items":{"type":"integer","format":"int32","title":"post_universe_names_id","description":"id integer"},"example":[95465499,30000142],"title":"post_universe_names_ids","description":"ids array"}},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of id/name associations for a set of ID's. All ID's must resolve to a name, or nothing will be returned.","examples":{"application/json":[{"id":95465499,"name":"CCP Bartender","category":"character"},{"id":30000142,"name":"Jita","category":"solar_system"}]},"schema":{"type":"array","maxItems":1000,"items":{"type":"object","required":["id","name","category"],"properties":{"id":{"type":"integer","format":"int32","title":"post_universe_names_id","description":"id integer"},"name":{"type":"string","title":"post_universe_names_name","description":"name string"},"category":{"type":"string","enum":["alliance","character","constellation","corporation","inventory_type","region","solar_system","station"],"title":"post_universe_names_category","description":"category string"}},"title":"post_universe_names_200_ok","description":"200 ok object"},"title":"post_universe_names_ok","description":"200 ok array"}},"404":{"description":"Ensure all IDs are valid before resolving.","schema":{"type":"object","title":"post_universe_names_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"post_universe_names_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"post_universe_names","x-alternate-versions":["dev","v2"]}},"/v1/universe/structures/":{"get":{"description":"List all public structures\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"List all public structures","tags":["Universe"],"responses":{"200":{"description":"List of public structure IDs","examples":{"application/json":[1020988381992,1020988381991]},"schema":{"type":"array","maxItems":10000,"uniqueItems":true,"items":{"type":"integer","format":"int64","minimum":0,"title":"get_universe_structures_200_ok","description":"200 ok integer"},"title":"get_universe_structures_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_universe_structures","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/races/":{"get":{"description":"Get a list of character races\n\n---\n\nThis route expires daily at 11:05","summary":"Get character races","tags":["Universe"],"responses":{"200":{"description":"A list of character races","examples":{"application/json":[{"race_id":1,"name":"Caldari","description":"Founded on the tenets of patriotism and hard work...","alliance_id":500001}]},"schema":{"type":"array","maxItems":4,"items":{"type":"object","required":["race_id","name","description","alliance_id"],"properties":{"race_id":{"type":"integer","format":"int32","title":"get_universe_races_race_id","description":"race_id integer"},"name":{"type":"string","title":"get_universe_races_name","description":"name string"},"description":{"type":"string","title":"get_universe_races_description","description":"description string"},"alliance_id":{"type":"integer","format":"int32","description":"The alliance generally associated with this race","title":"get_universe_races_alliance_id"}},"title":"get_universe_races_200_ok","description":"200 ok object"},"title":"get_universe_races_ok","description":"200 ok array"},"headers":{"Content-Language":{"description":"The language used in the response","type":"string","enum":["de","en-us","fr","ja","ru","zh"]},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_universe_races","x-alternate-versions":["dev","legacy","v1"]}},"/v2/universe/factions/":{"get":{"description":"Get a list of factions\n\n---\n\nThis route expires daily at 11:05","summary":"Get factions","tags":["Universe"],"responses":{"200":{"description":"A list of factions","examples":{"application/json":[{"faction_id":1,"name":"Faction","description":"blah blah","solar_system_id":123,"corporation_id":456,"size_factor":1.0,"station_count":1000,"station_system_count":100,"is_unique":true}]},"schema":{"type":"array","maxItems":10000,"items":{"type":"object","required":["faction_id","name","description","size_factor","station_count","station_system_count","is_unique"],"properties":{"faction_id":{"type":"integer","format":"int32","title":"get_universe_factions_faction_id","description":"faction_id integer"},"name":{"type":"string","title":"get_universe_factions_name","description":"name string"},"description":{"type":"string","title":"get_universe_factions_description","description":"description string"},"solar_system_id":{"type":"integer","format":"int32","title":"get_universe_factions_solar_system_id","description":"solar_system_id integer"},"corporation_id":{"type":"integer","format":"int32","title":"get_universe_factions_corporation_id","description":"corporation_id integer"},"militia_corporation_id":{"type":"integer","format":"int32","title":"get_universe_factions_militia_corporation_id","description":"militia_corporation_id integer"},"size_factor":{"type":"number","format":"float","title":"get_universe_factions_size_factor","description":"size_factor number"},"station_count":{"type":"integer","format":"int32","title":"get_universe_factions_station_count","description":"station_count integer"},"station_system_count":{"type":"integer","format":"int32","title":"get_universe_factions_station_system_count","description":"station_system_count integer"},"is_unique":{"type":"boolean","title":"get_universe_factions_is_unique","description":"is_unique boolean"}},"title":"get_universe_factions_200_ok","description":"200 ok object"},"title":"get_universe_factions_ok","description":"200 ok array"},"headers":{"Content-Language":{"description":"The language used in the response","type":"string","enum":["de","en-us","fr","ja","ru","zh"]},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_universe_factions","x-alternate-versions":["dev","v2"]}},"/v1/universe/bloodlines/":{"get":{"description":"Get a list of bloodlines\n\n---\n\nThis route expires daily at 11:05","summary":"Get bloodlines","tags":["Universe"],"responses":{"200":{"description":"A list of bloodlines","examples":{"application/json":[{"bloodline_id":1,"name":"Deteis","description":"The Deteis are regarded as ...","race_id":1,"ship_type_id":601,"corporation_id":1000006,"perception":5,"willpower":5,"charisma":6,"memory":7,"intelligence":7}]},"schema":{"type":"array","maxItems":100,"items":{"type":"object","required":["bloodline_id","name","description","race_id","ship_type_id","corporation_id","perception","willpower","charisma","memory","intelligence"],"properties":{"bloodline_id":{"type":"integer","format":"int32","title":"get_universe_bloodlines_bloodline_id","description":"bloodline_id integer"},"name":{"type":"string","title":"get_universe_bloodlines_name","description":"name string"},"description":{"type":"string","title":"get_universe_bloodlines_description","description":"description string"},"race_id":{"type":"integer","format":"int32","title":"get_universe_bloodlines_race_id","description":"race_id integer"},"ship_type_id":{"type":"integer","format":"int32","title":"get_universe_bloodlines_ship_type_id","description":"ship_type_id integer"},"corporation_id":{"type":"integer","format":"int32","title":"get_universe_bloodlines_corporation_id","description":"corporation_id integer"},"perception":{"type":"integer","format":"int32","title":"get_universe_bloodlines_perception","description":"perception integer"},"willpower":{"type":"integer","format":"int32","title":"get_universe_bloodlines_willpower","description":"willpower integer"},"charisma":{"type":"integer","format":"int32","title":"get_universe_bloodlines_charisma","description":"charisma integer"},"memory":{"type":"integer","format":"int32","title":"get_universe_bloodlines_memory","description":"memory integer"},"intelligence":{"type":"integer","format":"int32","title":"get_universe_bloodlines_intelligence","description":"intelligence integer"}},"title":"get_universe_bloodlines_200_ok","description":"200 ok object"},"title":"get_universe_bloodlines_ok","description":"200 ok array"},"headers":{"Content-Language":{"description":"The language used in the response","type":"string","enum":["de","en-us","fr","ja","ru","zh"]},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_universe_bloodlines","x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/regions/":{"get":{"description":"Get a list of regions\n\n---\n\nThis route expires daily at 11:05","summary":"Get regions","tags":["Universe"],"responses":{"200":{"description":"A list of region ids","examples":{"application/json":[11000001,11000002]},"schema":{"type":"array","maxItems":1000,"items":{"type":"integer","format":"int32","title":"get_universe_regions_200_ok","description":"200 ok integer"},"title":"get_universe_regions_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_universe_regions","x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/regions/{region_id}/":{"get":{"description":"Get information on a region\n\n---\n\nThis route expires daily at 11:05","summary":"Get region information","tags":["Universe"],"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"name":"region_id","in":"path","required":true,"type":"integer","format":"int32","description":"region_id integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a region","examples":{"application/json":{"region_id":10000042,"name":"Metropolis","description":"It has long been an established fact of civilization...","constellations":[20000302,20000303]}},"schema":{"type":"object","required":["region_id","name","constellations"],"properties":{"region_id":{"type":"integer","format":"int32","title":"get_universe_regions_region_id_region_id","description":"region_id integer"},"name":{"type":"string","title":"get_universe_regions_region_id_name","description":"name string"},"description":{"type":"string","title":"get_universe_regions_region_id_description","description":"description string"},"constellations":{"type":"array","maxItems":1000,"items":{"type":"integer","format":"int32","title":"get_universe_regions_region_id_constellation","description":"constellation integer"},"title":"get_universe_regions_region_id_constellations","description":"constellations array"}},"title":"get_universe_regions_region_id_ok","description":"200 ok object"},"headers":{"Content-Language":{"description":"The language used in the response","type":"string","enum":["de","en-us","fr","ja","ru","zh"]},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"Region not found","schema":{"type":"object","title":"get_universe_regions_region_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_universe_regions_region_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_universe_regions_region_id","x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/constellations/":{"get":{"description":"Get a list of constellations\n\n---\n\nThis route expires daily at 11:05","summary":"Get constellations","tags":["Universe"],"responses":{"200":{"description":"A list of constellation ids","examples":{"application/json":[20000001,20000002]},"schema":{"type":"array","maxItems":10000,"items":{"type":"integer","format":"int32","title":"get_universe_constellations_200_ok","description":"200 ok integer"},"title":"get_universe_constellations_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_universe_constellations","x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/constellations/{constellation_id}/":{"get":{"description":"Get information on a constellation\n\n---\n\nThis route expires daily at 11:05","summary":"Get constellation information","tags":["Universe"],"parameters":[{"name":"constellation_id","in":"path","required":true,"type":"integer","format":"int32","description":"constellation_id integer"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a constellation","examples":{"application/json":{"constellation_id":20000009,"name":"Mekashtad","position":{"x":67796138757472320,"y":-70591121348560960,"z":-59587016159270070},"region_id":10000001,"systems":[20000302,20000303]}},"schema":{"type":"object","required":["constellation_id","name","position","region_id","systems"],"properties":{"constellation_id":{"type":"integer","format":"int32","title":"get_universe_constellations_constellation_id_constellation_id","description":"constellation_id integer"},"name":{"type":"string","title":"get_universe_constellations_constellation_id_name","description":"name string"},"position":{"type":"object","required":["x","y","z"],"properties":{"x":{"type":"number","format":"double","title":"get_universe_constellations_constellation_id_x","description":"x number"},"y":{"type":"number","format":"double","title":"get_universe_constellations_constellation_id_y","description":"y number"},"z":{"type":"number","format":"double","title":"get_universe_constellations_constellation_id_z","description":"z number"}},"title":"get_universe_constellations_constellation_id_position","description":"position object"},"region_id":{"type":"integer","format":"int32","description":"The region this constellation is in","title":"get_universe_constellations_constellation_id_region_id"},"systems":{"type":"array","maxItems":10000,"items":{"type":"integer","format":"int32","title":"get_universe_constellations_constellation_id_system","description":"system integer"},"title":"get_universe_constellations_constellation_id_systems","description":"systems array"}},"title":"get_universe_constellations_constellation_id_ok","description":"200 ok object"},"headers":{"Content-Language":{"description":"The language used in the response","type":"string","enum":["de","en-us","fr","ja","ru","zh"]},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"Constellation not found","schema":{"type":"object","title":"get_universe_constellations_constellation_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_universe_constellations_constellation_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_universe_constellations_constellation_id","x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/moons/{moon_id}/":{"get":{"description":"Get information on a moon\n\n---\n\nThis route expires daily at 11:05","summary":"Get moon information","tags":["Universe"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"moon_id","in":"path","required":true,"type":"integer","format":"int32","description":"moon_id integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a moon","examples":{"application/json":{"moon_id":40000042,"name":"Akpivem I - Moon 1","position":{"x":58605102008,"y":-3066616285,"z":-55193617920},"system_id":30000003}},"schema":{"type":"object","required":["moon_id","name","position","system_id"],"properties":{"moon_id":{"type":"integer","format":"int32","title":"get_universe_moons_moon_id_moon_id","description":"moon_id integer"},"name":{"type":"string","title":"get_universe_moons_moon_id_name","description":"name string"},"position":{"type":"object","required":["x","y","z"],"properties":{"x":{"type":"number","format":"double","title":"get_universe_moons_moon_id_x","description":"x number"},"y":{"type":"number","format":"double","title":"get_universe_moons_moon_id_y","description":"y number"},"z":{"type":"number","format":"double","title":"get_universe_moons_moon_id_z","description":"z number"}},"title":"get_universe_moons_moon_id_position","description":"position object"},"system_id":{"type":"integer","format":"int32","description":"The solar system this moon is in","title":"get_universe_moons_moon_id_system_id"}},"title":"get_universe_moons_moon_id_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"Moon not found","schema":{"type":"object","title":"get_universe_moons_moon_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_universe_moons_moon_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_universe_moons_moon_id","x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/stargates/{stargate_id}/":{"get":{"description":"Get information on a stargate\n\n---\n\nThis route expires daily at 11:05","summary":"Get stargate information","tags":["Universe"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"stargate_id","in":"path","required":true,"type":"integer","format":"int32","description":"stargate_id integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a stargate","examples":{"application/json":{"stargate_id":50000342,"name":"Stargate (Tanoo)","type_id":29624,"position":{"x":-101092761600,"y":5279539200,"z":1550503403520},"system_id":30000003,"destination":{"system_id":30000001,"stargate_id":50000056}}},"schema":{"type":"object","required":["stargate_id","name","type_id","position","system_id","destination"],"properties":{"stargate_id":{"type":"integer","format":"int32","title":"get_universe_stargates_stargate_id_stargate_id","description":"stargate_id integer"},"name":{"type":"string","title":"get_universe_stargates_stargate_id_name","description":"name string"},"type_id":{"type":"integer","format":"int32","title":"get_universe_stargates_stargate_id_type_id","description":"type_id integer"},"position":{"type":"object","required":["x","y","z"],"properties":{"x":{"type":"number","format":"double","title":"get_universe_stargates_stargate_id_x","description":"x number"},"y":{"type":"number","format":"double","title":"get_universe_stargates_stargate_id_y","description":"y number"},"z":{"type":"number","format":"double","title":"get_universe_stargates_stargate_id_z","description":"z number"}},"title":"get_universe_stargates_stargate_id_position","description":"position object"},"system_id":{"type":"integer","format":"int32","description":"The solar system this stargate is in","title":"get_universe_stargates_stargate_id_system_id"},"destination":{"type":"object","required":["system_id","stargate_id"],"properties":{"system_id":{"type":"integer","format":"int32","description":"The solar system this stargate connects to","title":"get_universe_stargates_stargate_id_system_id"},"stargate_id":{"type":"integer","format":"int32","description":"The stargate this stargate connects to","title":"get_universe_stargates_stargate_id_stargate_id"}},"title":"get_universe_stargates_stargate_id_destination","description":"destination object"}},"title":"get_universe_stargates_stargate_id_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"Stargate not found","schema":{"type":"object","title":"get_universe_stargates_stargate_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_universe_stargates_stargate_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_universe_stargates_stargate_id","x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/graphics/":{"get":{"description":"Get a list of graphics\n\n---\n\nThis route expires daily at 11:05","summary":"Get graphics","tags":["Universe"],"responses":{"200":{"description":"A list of graphic ids","examples":{"application/json":[10,4106]},"schema":{"type":"array","maxItems":10000,"items":{"type":"integer","format":"int32","title":"get_universe_graphics_200_ok","description":"200 ok integer"},"title":"get_universe_graphics_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_universe_graphics","x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/graphics/{graphic_id}/":{"get":{"description":"Get information on a graphic\n\n---\n\nThis route expires daily at 11:05","summary":"Get graphic information","tags":["Universe"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"graphic_id","in":"path","required":true,"type":"integer","format":"int32","description":"graphic_id integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a graphic","examples":{"application/json":{"graphic_id":10,"graphic_file":"res:/dx9/model/worldobject/planet/moon.red"}},"schema":{"type":"object","required":["graphic_id"],"properties":{"graphic_id":{"type":"integer","format":"int32","title":"get_universe_graphics_graphic_id_graphic_id","description":"graphic_id integer"},"graphic_file":{"type":"string","title":"get_universe_graphics_graphic_id_graphic_file","description":"graphic_file string"},"sof_race_name":{"type":"string","title":"get_universe_graphics_graphic_id_sof_race_name","description":"sof_race_name string"},"sof_fation_name":{"type":"string","title":"get_universe_graphics_graphic_id_sof_fation_name","description":"sof_fation_name string"},"sof_dna":{"type":"string","title":"get_universe_graphics_graphic_id_sof_dna","description":"sof_dna string"},"sof_hull_name":{"type":"string","title":"get_universe_graphics_graphic_id_sof_hull_name","description":"sof_hull_name string"},"collision_file":{"type":"string","title":"get_universe_graphics_graphic_id_collision_file","description":"collision_file string"},"icon_folder":{"type":"string","title":"get_universe_graphics_graphic_id_icon_folder","description":"icon_folder string"}},"title":"get_universe_graphics_graphic_id_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"404":{"description":"Graphic not found","schema":{"type":"object","title":"get_universe_graphics_graphic_id_not_found","description":"Not found","properties":{"error":{"type":"string","description":"Not found message","title":"get_universe_graphics_graphic_id_404_not_found"}}},"examples":{"application/json":{"error":"Not found message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_universe_graphics_graphic_id","x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/system_jumps/":{"get":{"description":"Get the number of jumps in solar systems within the last hour ending at the timestamp of the Last-Modified header, excluding wormhole space. Only systems with jumps will be listed\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get system jumps","tags":["Universe"],"responses":{"200":{"description":"A list of systems and number of jumps","examples":{"application/json":[{"system_id":30002410,"ship_jumps":42}]},"schema":{"type":"array","maxItems":10000,"items":{"type":"object","required":["system_id","ship_jumps"],"properties":{"system_id":{"type":"integer","format":"int32","title":"get_universe_system_jumps_system_id","description":"system_id integer"},"ship_jumps":{"type":"integer","format":"int32","title":"get_universe_system_jumps_ship_jumps","description":"ship_jumps integer"}},"title":"get_universe_system_jumps_200_ok","description":"200 ok object"},"title":"get_universe_system_jumps_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_universe_system_jumps","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v2/universe/system_kills/":{"get":{"description":"Get the number of ship, pod and NPC kills per solar system within the last hour ending at the timestamp of the Last-Modified header, excluding wormhole space. Only systems with kills will be listed\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get system kills","tags":["Universe"],"responses":{"200":{"description":"A list of systems and number of ship, pod and NPC kills","examples":{"application/json":[{"system_id":30002410,"ship_kills":42,"npc_kills":0,"pod_kills":24}]},"schema":{"type":"array","maxItems":10000,"items":{"type":"object","required":["system_id","ship_kills","npc_kills","pod_kills"],"properties":{"system_id":{"type":"integer","format":"int32","title":"get_universe_system_kills_system_id","description":"system_id integer"},"ship_kills":{"type":"integer","format":"int32","description":"Number of player ships killed in this system","title":"get_universe_system_kills_ship_kills"},"npc_kills":{"type":"integer","format":"int32","description":"Number of NPC ships killed in this system","title":"get_universe_system_kills_npc_kills"},"pod_kills":{"type":"integer","format":"int32","description":"Number of pods killed in this system","title":"get_universe_system_kills_pod_kills"}},"title":"get_universe_system_kills_200_ok","description":"200 ok object"},"title":"get_universe_system_kills_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_universe_system_kills","x-cached-seconds":3600,"x-alternate-versions":["dev","v2"]}},"/v1/universe/stars/{star_id}/":{"get":{"description":"Get information on a star\n\n---\n\nThis route expires daily at 11:05","summary":"Get star information","tags":["Universe"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"star_id","in":"path","required":true,"type":"integer","format":"int32","description":"star_id integer"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Information about a star","examples":{"application/json":{"type_id":45033,"age":9398686722,"name":"BKG-Q2 - Star","luminosity":0.06615000218153,"radius":346600000,"spectral_class":"K2 V","temperature":3953,"solar_system_id":30004333}},"schema":{"type":"object","required":["name","type_id","age","luminosity","radius","spectral_class","temperature","solar_system_id"],"properties":{"name":{"type":"string","title":"get_universe_stars_star_id_name","description":"name string"},"solar_system_id":{"type":"integer","format":"int32","title":"get_universe_stars_star_id_solar_system_id","description":"solar_system_id integer"},"type_id":{"type":"integer","format":"int32","title":"get_universe_stars_star_id_type_id","description":"type_id integer"},"age":{"type":"integer","format":"int64","description":"Age of star in years","title":"get_universe_stars_star_id_age"},"luminosity":{"type":"number","format":"float","title":"get_universe_stars_star_id_luminosity","description":"luminosity number"},"radius":{"type":"integer","format":"int64","title":"get_universe_stars_star_id_radius","description":"radius integer"},"spectral_class":{"type":"string","enum":["K2 V","K4 V","G2 V","G8 V","M7 V","K7 V","M2 V","K5 V","M3 V","G0 V","G7 V","G3 V","F9 V","G5 V","F6 V","K8 V","K9 V","K6 V","G9 V","G6 V","G4 VI","G4 V","F8 V","F2 V","F1 V","K3 V","F0 VI","G1 VI","G0 VI","K1 V","M4 V","M1 V","M6 V","M0 V","K2 IV","G2 VI","K0 V","K5 IV","F5 VI","G6 VI","F6 VI","F2 IV","G3 VI","M8 V","F1 VI","K1 IV","F7 V","G5 VI","M5 V","G7 VI","F5 V","F4 VI","F8 VI","K3 IV","F4 IV","F0 V","G7 IV","G8 VI","F2 VI","F4 V","F7 VI","F3 V","G1 V","G9 VI","F3 IV","F9 VI","M9 V","K0 IV","F1 IV","G4 IV","F3 VI","K4 IV","G5 IV","G3 IV","G1 IV","K7 IV","G0 IV","K6 IV","K9 IV","G2 IV","F9 IV","F0 IV","K8 IV","G8 IV","F6 IV","F5 IV","A0","A0IV","A0IV2"],"title":"get_universe_stars_star_id_spectral_class","description":"spectral_class string"},"temperature":{"type":"integer","format":"int32","title":"get_universe_stars_star_id_temperature","description":"temperature integer"}},"title":"get_universe_stars_star_id_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_universe_stars_star_id","x-alternate-versions":["dev","legacy","v1"]}},"/v1/universe/ancestries/":{"get":{"description":"Get all character ancestries\n\n---\n\nThis route expires daily at 11:05","summary":"Get ancestries","tags":["Universe"],"responses":{"200":{"description":"A list of ancestries","examples":{"application/json":[{"id":12,"name":"Tube Child","description":"Acutely aware of the small population...","bloodline_id":1,"short_description":"Manufactured citizens of the State."}]},"schema":{"type":"array","maxItems":42,"items":{"type":"object","required":["id","name","bloodline_id","description"],"properties":{"id":{"type":"integer","format":"int32","title":"get_universe_ancestries_id","description":"id integer"},"name":{"type":"string","title":"get_universe_ancestries_name","description":"name string"},"bloodline_id":{"description":"The bloodline associated with this ancestry","type":"integer","format":"int32","title":"get_universe_ancestries_bloodline_id"},"description":{"type":"string","title":"get_universe_ancestries_description","description":"description string"},"short_description":{"type":"string","title":"get_universe_ancestries_short_description","description":"short_description string"},"icon_id":{"type":"integer","format":"int32","title":"get_universe_ancestries_icon_id","description":"icon_id integer"}},"title":"get_universe_ancestries_200_ok","description":"200 ok object"},"title":"get_universe_ancestries_ok","description":"200 ok array"},"headers":{"Content-Language":{"description":"The language used in the response","type":"string","enum":["de","en-us","fr","ja","ru","zh"]},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/language"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"operationId":"get_universe_ancestries","x-alternate-versions":["dev","legacy","v1"]}},"/v1/ui/openwindow/marketdetails/":{"post":{"description":"Open the market details window for a specific typeID inside the client\n\n---\n","summary":"Open Market Details","tags":["User Interface"],"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"name":"type_id","in":"query","description":"The item type to open in market window","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Open window request received"},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-ui.open_window.v1"]}],"operationId":"post_ui_openwindow_marketdetails","x-alternate-versions":["dev","legacy","v1"]}},"/v1/ui/openwindow/contract/":{"post":{"description":"Open the contract window inside the client\n\n---\n","summary":"Open Contract Window","tags":["User Interface"],"parameters":[{"name":"contract_id","in":"query","description":"The contract to open","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Open window request received"},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-ui.open_window.v1"]}],"operationId":"post_ui_openwindow_contract","x-alternate-versions":["dev","legacy","v1"]}},"/v1/ui/openwindow/information/":{"post":{"description":"Open the information window for a character, corporation or alliance inside the client\n\n---\n","summary":"Open Information Window","tags":["User Interface"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"target_id","in":"query","description":"The target to open","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Open window request received"},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-ui.open_window.v1"]}],"operationId":"post_ui_openwindow_information","x-alternate-versions":["dev","legacy","v1"]}},"/v2/ui/autopilot/waypoint/":{"post":{"description":"Set a solar system as autopilot waypoint\n\n---\n","summary":"Set Autopilot Waypoint","tags":["User Interface"],"parameters":[{"name":"add_to_beginning","in":"query","description":"Whether this solar system should be added to the beginning of all waypoints","required":true,"type":"boolean","default":false},{"name":"clear_other_waypoints","in":"query","description":"Whether clean other waypoints beforing adding this one","required":true,"type":"boolean","default":false},{"$ref":"#/parameters/datasource"},{"name":"destination_id","in":"query","description":"The destination to travel to, can be solar system, station or structure's id","required":true,"type":"integer","format":"int64"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Open window request received"},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-ui.write_waypoint.v1"]}],"operationId":"post_ui_autopilot_waypoint","x-alternate-versions":["dev","v2"]}},"/v1/ui/openwindow/newmail/":{"post":{"description":"Open the New Mail window, according to settings from the request if applicable\n\n---\n","summary":"Open New Mail Window","tags":["User Interface"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"new_mail","in":"body","description":"The details of mail to create","required":true,"schema":{"type":"object","required":["subject","body","recipients"],"properties":{"subject":{"type":"string","maxLength":1000,"title":"post_ui_openwindow_newmail_subject","description":"subject string"},"body":{"type":"string","maxLength":10000,"title":"post_ui_openwindow_newmail_body","description":"body string"},"recipients":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"integer","format":"int32","title":"post_ui_openwindow_newmail_recipient","description":"recipient integer"},"title":"post_ui_openwindow_newmail_recipients","description":"recipients array"},"to_mailing_list_id":{"type":"integer","format":"int32","description":"Corporations, alliances and mailing lists are all types of mailing groups. You may only send to one mailing group, at a time, so you may fill out either this field or the to_corp_or_alliance_ids field","title":"post_ui_openwindow_newmail_to_mailing_list_id"},"to_corp_or_alliance_id":{"type":"integer","format":"int32","title":"post_ui_openwindow_newmail_to_corp_or_alliance_id","description":"to_corp_or_alliance_id integer"}},"title":"post_ui_openwindow_newmail_new_mail","description":"new_mail object"}},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"204":{"description":"Open window request received"},"422":{"description":"Invalid request","schema":{"type":"object","title":"post_ui_openwindow_newmail_unprocessable_entity","description":"Unprocessable entity","properties":{"error":{"type":"string","description":"Unprocessable entity message","title":"post_ui_openwindow_newmail_422_unprocessable_entity"}}},"examples":{"application/json":{"error":"Unprocessable entity message"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-ui.open_window.v1"]}],"operationId":"post_ui_openwindow_newmail","x-alternate-versions":["dev","legacy","v1"]}},"/v1/characters/{character_id}/wallet/":{"get":{"summary":"Get a character's wallet balance","description":"Returns a character's wallet balance\n\n---\n\nThis route is cached for up to 120 seconds","tags":["Wallet"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Wallet balance","examples":{"application/json":29500.01},"schema":{"type":"number","format":"double","description":"Wallet balance","title":"get_characters_character_id_wallet_ok"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}}},"security":[{"evesso":["esi-wallet.read_character_wallet.v1"]}],"operationId":"get_characters_character_id_wallet","x-cached-seconds":120,"x-alternate-versions":["dev","legacy","v1"]}},"/v3/characters/{character_id}/wallet/journal/":{"get":{"description":"Retrieve character wallet journal\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get character wallet journal","tags":["Wallet"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"name":"from_id","in":"query","description":"Only show journal entries happened before the transaction referenced by this id","required":false,"type":"integer","format":"int64"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Journal entries","examples":{"application/json":[{"date":"2016-10-24T09:00:00Z","ref_id":1234567890,"ref_type":"player_trading"}]},"schema":{"type":"array","description":"Journal entries","maxItems":2500,"items":{"type":"object","required":["date","ref_id","ref_type"],"properties":{"date":{"type":"string","format":"date-time","description":"Date and time of transaction","title":"get_characters_character_id_wallet_journal_date"},"ref_id":{"type":"integer","format":"int64","description":"Unique journal reference ID","title":"get_characters_character_id_wallet_journal_ref_id"},"ref_type":{"type":"string","description":"Transaction type, different type of transaction will populate different fields in `extra_info` Note: If you have an existing XML API application that is using ref_types, you will need to know which string ESI ref_type maps to which integer. You can use the following gist to see string->int mappings: https://gist.github.com/ccp-zoetrope/c03db66d90c2148724c06171bc52e0ec","enum":["acceleration_gate_fee","advertisement_listing_fee","agent_donation","agent_location_services","agent_miscellaneous","agent_mission_collateral_paid","agent_mission_collateral_refunded","agent_mission_reward","agent_mission_reward_corporation_tax","agent_mission_time_bonus_reward","agent_mission_time_bonus_reward_corporation_tax","agent_security_services","agent_services_rendered","agents_preward","alliance_maintainance_fee","alliance_registration_fee","asset_safety_recovery_tax","bounty","bounty_prize","bounty_prize_corporation_tax","bounty_prizes","bounty_reimbursement","bounty_surcharge","brokers_fee","clone_activation","clone_transfer","contraband_fine","contract_auction_bid","contract_auction_bid_corp","contract_auction_bid_refund","contract_auction_sold","contract_brokers_fee","contract_brokers_fee_corp","contract_collateral","contract_collateral_deposited_corp","contract_collateral_payout","contract_collateral_refund","contract_deposit","contract_deposit_corp","contract_deposit_refund","contract_deposit_sales_tax","contract_price","contract_price_payment_corp","contract_reversal","contract_reward","contract_reward_deposited","contract_reward_deposited_corp","contract_reward_refund","contract_sales_tax","copying","corporate_reward_payout","corporate_reward_tax","corporation_account_withdrawal","corporation_bulk_payment","corporation_dividend_payment","corporation_liquidation","corporation_logo_change_cost","corporation_payment","corporation_registration_fee","courier_mission_escrow","cspa","cspaofflinerefund","datacore_fee","dna_modification_fee","docking_fee","duel_wager_escrow","duel_wager_payment","duel_wager_refund","factory_slot_rental_fee","gm_cash_transfer","industry_job_tax","infrastructure_hub_maintenance","inheritance","insurance","jump_clone_activation_fee","jump_clone_installation_fee","kill_right_fee","lp_store","manufacturing","market_escrow","market_fine_paid","market_transaction","medal_creation","medal_issued","mission_completion","mission_cost","mission_expiration","mission_reward","office_rental_fee","operation_bonus","opportunity_reward","planetary_construction","planetary_export_tax","planetary_import_tax","player_donation","player_trading","project_discovery_reward","project_discovery_tax","reaction","release_of_impounded_property","repair_bill","reprocessing_tax","researching_material_productivity","researching_technology","researching_time_productivity","resource_wars_reward","reverse_engineering","security_processing_fee","shares","sovereignity_bill","store_purchase","store_purchase_refund","transaction_tax","upkeep_adjustment_fee","war_ally_contract","war_fee","war_fee_surrender"],"title":"get_characters_character_id_wallet_journal_ref_type"},"first_party_id":{"type":"integer","format":"int32","title":"get_characters_character_id_wallet_journal_first_party_id","description":"first_party_id integer"},"first_party_type":{"type":"string","enum":["character","corporation","alliance","faction","system"],"title":"get_characters_character_id_wallet_journal_first_party_type","description":"first_party_type string"},"second_party_id":{"type":"integer","format":"int32","title":"get_characters_character_id_wallet_journal_second_party_id","description":"second_party_id integer"},"second_party_type":{"type":"string","enum":["character","corporation","alliance","faction","system"],"title":"get_characters_character_id_wallet_journal_second_party_type","description":"second_party_type string"},"amount":{"type":"number","format":"double","description":"Transaction amount. Positive when value transferred to the first party. Negative otherwise","title":"get_characters_character_id_wallet_journal_amount"},"balance":{"type":"number","format":"double","description":"Wallet balance after transaction occurred","title":"get_characters_character_id_wallet_journal_balance"},"reason":{"type":"string","title":"get_characters_character_id_wallet_journal_reason","description":"reason string"},"tax_receiver_id":{"type":"integer","format":"int32","description":"the corporation ID receiving any tax paid","title":"get_characters_character_id_wallet_journal_tax_receiver_id"},"tax":{"type":"number","format":"double","description":"Tax amount received for tax related transactions","title":"get_characters_character_id_wallet_journal_tax"},"extra_info":{"type":"object","description":"Extra information for different type of transaction","properties":{"location_id":{"type":"integer","format":"int64","title":"get_characters_character_id_wallet_journal_location_id","description":"location_id integer"},"transaction_id":{"type":"integer","format":"int64","title":"get_characters_character_id_wallet_journal_transaction_id","description":"transaction_id integer"},"npc_name":{"type":"string","title":"get_characters_character_id_wallet_journal_npc_name","description":"npc_name string"},"npc_id":{"type":"integer","format":"int32","title":"get_characters_character_id_wallet_journal_npc_id","description":"npc_id integer"},"destroyed_ship_type_id":{"type":"integer","format":"int32","title":"get_characters_character_id_wallet_journal_destroyed_ship_type_id","description":"destroyed_ship_type_id integer"},"character_id":{"type":"integer","format":"int32","title":"get_characters_character_id_wallet_journal_character_id","description":"character_id integer"},"corporation_id":{"type":"integer","format":"int32","title":"get_characters_character_id_wallet_journal_corporation_id","description":"corporation_id integer"},"alliance_id":{"type":"integer","format":"int32","title":"get_characters_character_id_wallet_journal_alliance_id","description":"alliance_id integer"},"job_id":{"type":"integer","format":"int32","title":"get_characters_character_id_wallet_journal_job_id","description":"job_id integer"},"contract_id":{"type":"integer","format":"int32","title":"get_characters_character_id_wallet_journal_contract_id","description":"contract_id integer"},"system_id":{"type":"integer","format":"int32","title":"get_characters_character_id_wallet_journal_system_id","description":"system_id integer"},"planet_id":{"type":"integer","format":"int32","title":"get_characters_character_id_wallet_journal_planet_id","description":"planet_id integer"}},"title":"get_characters_character_id_wallet_journal_extra_info"}},"title":"get_characters_character_id_wallet_journal_200_ok","description":"200 ok object"},"title":"get_characters_character_id_wallet_journal_ok"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-wallet.read_character_wallet.v1"]}],"operationId":"get_characters_character_id_wallet_journal","x-cached-seconds":3600,"x-alternate-versions":["dev","v3"]}},"/v1/characters/{character_id}/wallet/transactions/":{"get":{"description":"Get wallet transactions of a character\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get wallet transactions","tags":["Wallet"],"parameters":[{"$ref":"#/parameters/character_id"},{"$ref":"#/parameters/datasource"},{"name":"from_id","in":"query","description":"Only show transactions happened before the one referenced by this id","required":false,"type":"integer","format":"int64"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Wallet transactions","examples":{"application/json":[{"transaction_id":1234567890,"date":"2016-10-24T09:00:00Z","location_id":60014719,"type_id":587,"unit_price":1,"quantity":1,"client_id":54321,"is_buy":true,"is_personal":true,"journal_ref_id":67890}]},"schema":{"type":"array","description":"Wallet transactions","maxItems":2500,"items":{"type":"object","description":"wallet transaction","required":["transaction_id","date","location_id","type_id","unit_price","quantity","client_id","is_buy","is_personal","journal_ref_id"],"properties":{"transaction_id":{"type":"integer","format":"int64","description":"Unique transaction ID","title":"get_characters_character_id_wallet_transactions_transaction_id"},"date":{"type":"string","format":"date-time","description":"Date and time of transaction","title":"get_characters_character_id_wallet_transactions_date"},"type_id":{"type":"integer","format":"int32","title":"get_characters_character_id_wallet_transactions_type_id","description":"type_id integer"},"location_id":{"type":"integer","format":"int64","title":"get_characters_character_id_wallet_transactions_location_id","description":"location_id integer"},"unit_price":{"type":"number","format":"double","description":"Amount paid per unit","title":"get_characters_character_id_wallet_transactions_unit_price"},"quantity":{"type":"integer","format":"int32","title":"get_characters_character_id_wallet_transactions_quantity","description":"quantity integer"},"client_id":{"type":"integer","format":"int32","title":"get_characters_character_id_wallet_transactions_client_id","description":"client_id integer"},"is_buy":{"type":"boolean","title":"get_characters_character_id_wallet_transactions_is_buy","description":"is_buy boolean"},"is_personal":{"type":"boolean","title":"get_characters_character_id_wallet_transactions_is_personal","description":"is_personal boolean"},"journal_ref_id":{"type":"integer","format":"int64","title":"get_characters_character_id_wallet_transactions_journal_ref_id","description":"journal_ref_id integer"}},"title":"get_characters_character_id_wallet_transactions_200_ok"},"title":"get_characters_character_id_wallet_transactions_ok"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"security":[{"evesso":["esi-wallet.read_character_wallet.v1"]}],"operationId":"get_characters_character_id_wallet_transactions","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/corporations/{corporation_id}/wallets/":{"get":{"description":"Get a corporation's wallets\n\n---\n\nThis route is cached for up to 300 seconds\n\n---\nRequires one of the following EVE corporation role(s): Accountant, Junior_Accountant","summary":"Returns a corporation's wallet balance","tags":["Wallet"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"List of corporation wallets","examples":{"application/json":[{"division":1,"balance":123.45},{"division":2,"balance":123.45},{"division":3,"balance":123.45},{"division":4,"balance":123.45},{"division":5,"balance":123.45},{"division":6,"balance":123.45},{"division":7,"balance":123.45}]},"schema":{"type":"array","maxItems":7,"items":{"type":"object","required":["division","balance"],"properties":{"division":{"type":"integer","format":"int32","minimum":1,"maximum":7,"title":"get_corporations_corporation_id_wallets_division","description":"division integer"},"balance":{"type":"number","format":"double","title":"get_corporations_corporation_id_wallets_balance","description":"balance number"}},"title":"get_corporations_corporation_id_wallets_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_wallets_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Accountant","Junior_Accountant"],"security":[{"evesso":["esi-wallet.read_corporation_wallets.v1"]}],"operationId":"get_corporations_corporation_id_wallets","x-cached-seconds":300,"x-alternate-versions":["dev","legacy","v1"]}},"/v2/corporations/{corporation_id}/wallets/{division}/journal/":{"get":{"description":"Retrieve corporation wallet journal\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Accountant, Junior_Accountant","summary":"Get corporation wallet journal","tags":["Wallet"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"name":"division","in":"path","description":"Wallet key of the division to fetch journals from","required":true,"type":"integer","format":"int32","minimum":1,"maximum":7},{"name":"from_id","in":"query","description":"Only show journal entries happened before the transaction referenced by this id","required":false,"type":"integer","format":"int64"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Journal entries","examples":{"application/json":[{"date":"2016-10-24T09:00:00Z","ref_id":1234567890,"ref_type":"player_trading"}]},"schema":{"type":"array","description":"Journal entries","maxItems":2500,"items":{"type":"object","required":["date","ref_id","ref_type"],"properties":{"date":{"type":"string","format":"date-time","description":"Date and time of transaction","title":"get_corporations_corporation_id_wallets_division_journal_date"},"ref_id":{"type":"integer","format":"int64","description":"Unique journal reference ID","title":"get_corporations_corporation_id_wallets_division_journal_ref_id"},"ref_type":{"type":"string","description":"Transaction type, different type of transaction will populate different fields in `extra_info` Note: If you have an existing XML API application that is using ref_types, you will need to know which string ESI ref_type maps to which integer. You can use the following gist to see string->int mappings: https://gist.github.com/ccp-zoetrope/c03db66d90c2148724c06171bc52e0ec","enum":["acceleration_gate_fee","advertisement_listing_fee","agent_donation","agent_location_services","agent_miscellaneous","agent_mission_collateral_paid","agent_mission_collateral_refunded","agent_mission_reward","agent_mission_reward_corporation_tax","agent_mission_time_bonus_reward","agent_mission_time_bonus_reward_corporation_tax","agent_security_services","agent_services_rendered","agents_preward","alliance_maintainance_fee","alliance_registration_fee","asset_safety_recovery_tax","bounty","bounty_prize","bounty_prize_corporation_tax","bounty_prizes","bounty_reimbursement","bounty_surcharge","brokers_fee","clone_activation","clone_transfer","contraband_fine","contract_auction_bid","contract_auction_bid_corp","contract_auction_bid_refund","contract_auction_sold","contract_brokers_fee","contract_brokers_fee_corp","contract_collateral","contract_collateral_deposited_corp","contract_collateral_payout","contract_collateral_refund","contract_deposit","contract_deposit_corp","contract_deposit_refund","contract_deposit_sales_tax","contract_price","contract_price_payment_corp","contract_reversal","contract_reward","contract_reward_deposited","contract_reward_deposited_corp","contract_reward_refund","contract_sales_tax","copying","corporate_reward_payout","corporate_reward_tax","corporation_account_withdrawal","corporation_bulk_payment","corporation_dividend_payment","corporation_liquidation","corporation_logo_change_cost","corporation_payment","corporation_registration_fee","courier_mission_escrow","cspa","cspaofflinerefund","datacore_fee","dna_modification_fee","docking_fee","duel_wager_escrow","duel_wager_payment","duel_wager_refund","factory_slot_rental_fee","gm_cash_transfer","industry_job_tax","infrastructure_hub_maintenance","inheritance","insurance","jump_clone_activation_fee","jump_clone_installation_fee","kill_right_fee","lp_store","manufacturing","market_escrow","market_fine_paid","market_transaction","medal_creation","medal_issued","mission_completion","mission_cost","mission_expiration","mission_reward","office_rental_fee","operation_bonus","opportunity_reward","planetary_construction","planetary_export_tax","planetary_import_tax","player_donation","player_trading","project_discovery_reward","project_discovery_tax","reaction","release_of_impounded_property","repair_bill","reprocessing_tax","researching_material_productivity","researching_technology","researching_time_productivity","resource_wars_reward","reverse_engineering","security_processing_fee","shares","sovereignity_bill","store_purchase","store_purchase_refund","transaction_tax","upkeep_adjustment_fee","war_ally_contract","war_fee","war_fee_surrender"],"title":"get_corporations_corporation_id_wallets_division_journal_ref_type"},"first_party_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_first_party_id","description":"first_party_id integer"},"first_party_type":{"type":"string","enum":["character","corporation","alliance","faction","system"],"title":"get_corporations_corporation_id_wallets_division_journal_first_party_type","description":"first_party_type string"},"second_party_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_second_party_id","description":"second_party_id integer"},"second_party_type":{"type":"string","enum":["character","corporation","alliance","faction","system"],"title":"get_corporations_corporation_id_wallets_division_journal_second_party_type","description":"second_party_type string"},"amount":{"type":"number","format":"double","description":"Transaction amount. Positive when value transferred to the first party. Negative otherwise","title":"get_corporations_corporation_id_wallets_division_journal_amount"},"balance":{"type":"number","format":"double","description":"Wallet balance after transaction occurred","title":"get_corporations_corporation_id_wallets_division_journal_balance"},"reason":{"type":"string","title":"get_corporations_corporation_id_wallets_division_journal_reason","description":"reason string"},"tax_receiver_id":{"type":"integer","format":"int32","description":"the corporation ID receiving any tax paid","title":"get_corporations_corporation_id_wallets_division_journal_tax_receiver_id"},"tax":{"type":"number","format":"double","description":"Tax amount received for tax related transactions","title":"get_corporations_corporation_id_wallets_division_journal_tax"},"extra_info":{"type":"object","description":"Extra information for different type of transaction","properties":{"location_id":{"type":"integer","format":"int64","title":"get_corporations_corporation_id_wallets_division_journal_location_id","description":"location_id integer"},"transaction_id":{"type":"integer","format":"int64","title":"get_corporations_corporation_id_wallets_division_journal_transaction_id","description":"transaction_id integer"},"npc_name":{"type":"string","title":"get_corporations_corporation_id_wallets_division_journal_npc_name","description":"npc_name string"},"npc_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_npc_id","description":"npc_id integer"},"destroyed_ship_type_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_destroyed_ship_type_id","description":"destroyed_ship_type_id integer"},"character_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_character_id","description":"character_id integer"},"corporation_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_corporation_id","description":"corporation_id integer"},"alliance_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_alliance_id","description":"alliance_id integer"},"job_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_job_id","description":"job_id integer"},"contract_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_contract_id","description":"contract_id integer"},"system_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_system_id","description":"system_id integer"},"planet_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_journal_planet_id","description":"planet_id integer"}},"title":"get_corporations_corporation_id_wallets_division_journal_extra_info"}},"title":"get_corporations_corporation_id_wallets_division_journal_200_ok","description":"200 ok object"},"title":"get_corporations_corporation_id_wallets_division_journal_ok"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Accountant","Junior_Accountant"],"security":[{"evesso":["esi-wallet.read_corporation_wallets.v1"]}],"operationId":"get_corporations_corporation_id_wallets_division_journal","x-cached-seconds":3600,"x-alternate-versions":["dev","v2"]}},"/v1/corporations/{corporation_id}/wallets/{division}/transactions/":{"get":{"description":"Get wallet transactions of a corporation\n\n---\n\nThis route is cached for up to 3600 seconds\n\n---\nRequires one of the following EVE corporation role(s): Accountant, Junior_Accountant","summary":"Get corporation wallet transactions","tags":["Wallet"],"parameters":[{"$ref":"#/parameters/corporation_id"},{"$ref":"#/parameters/datasource"},{"name":"division","in":"path","description":"Wallet key of the division to fetch journals from","required":true,"type":"integer","format":"int32","minimum":1,"maximum":7},{"name":"from_id","in":"query","description":"Only show journal entries happened before the transaction referenced by this id","required":false,"type":"integer","format":"int64"},{"$ref":"#/parameters/token"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Wallet transactions","examples":{"application/json":[{"transaction_id":1234567890,"date":"2016-10-24T09:00:00Z","location_id":60014719,"type_id":587,"unit_price":1,"quantity":1,"client_id":54321,"is_buy":true,"journal_ref_id":67890}]},"schema":{"type":"array","description":"Wallet transactions","maxItems":2500,"items":{"type":"object","description":"wallet transaction","required":["transaction_id","date","location_id","type_id","unit_price","quantity","client_id","is_buy","journal_ref_id"],"properties":{"transaction_id":{"type":"integer","format":"int64","description":"Unique transaction ID","title":"get_corporations_corporation_id_wallets_division_transactions_transaction_id"},"date":{"type":"string","format":"date-time","description":"Date and time of transaction","title":"get_corporations_corporation_id_wallets_division_transactions_date"},"type_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_transactions_type_id","description":"type_id integer"},"location_id":{"type":"integer","format":"int64","title":"get_corporations_corporation_id_wallets_division_transactions_location_id","description":"location_id integer"},"unit_price":{"type":"number","format":"double","description":"Amount paid per unit","title":"get_corporations_corporation_id_wallets_division_transactions_unit_price"},"quantity":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_transactions_quantity","description":"quantity integer"},"client_id":{"type":"integer","format":"int32","title":"get_corporations_corporation_id_wallets_division_transactions_client_id","description":"client_id integer"},"is_buy":{"type":"boolean","title":"get_corporations_corporation_id_wallets_division_transactions_is_buy","description":"is_buy boolean"},"journal_ref_id":{"type":"integer","format":"int64","title":"get_corporations_corporation_id_wallets_division_transactions_journal_ref_id","description":"journal_ref_id integer"}},"title":"get_corporations_corporation_id_wallets_division_transactions_200_ok"},"title":"get_corporations_corporation_id_wallets_division_transactions_ok"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/forbidden"},"examples":{"application/json":{"error":"Forbidden message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"x-required-roles":["Accountant","Junior_Accountant"],"security":[{"evesso":["esi-wallet.read_corporation_wallets.v1"]}],"operationId":"get_corporations_corporation_id_wallets_division_transactions","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/wars/":{"get":{"description":"Return a list of wars\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"List wars","tags":["Wars"],"parameters":[{"$ref":"#/parameters/datasource"},{"name":"max_war_id","in":"query","description":"Only return wars with ID smaller than this.","required":false,"type":"integer","format":"int32"},{"$ref":"#/parameters/user_agent"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of war IDs, in decending order by war_id.","examples":{"application/json":[3,2,1]},"schema":{"type":"array","maxItems":2000,"items":{"type":"integer","format":"int32","title":"get_wars_200_ok","description":"200 ok integer"},"title":"get_wars_ok","description":"200 ok array"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_wars","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/wars/{war_id}/":{"get":{"description":"Return details about a war\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"Get war information","tags":["Wars"],"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/user_agent"},{"name":"war_id","in":"path","description":"ID for a war","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"Details about a war","examples":{"application/json":{"id":1941,"declared":"2004-05-22T05:20:00Z","mutual":false,"open_for_allies":false,"aggressor":{"corporation_id":986665792,"ships_killed":0,"isk_destroyed":0},"defender":{"corporation_id":1001562011,"ships_killed":0,"isk_destroyed":0}}},"schema":{"type":"object","required":["id","declared","mutual","open_for_allies","aggressor","defender"],"properties":{"id":{"type":"integer","format":"int32","description":"ID of the specified war","title":"get_wars_war_id_id"},"declared":{"type":"string","format":"date-time","description":"Time that the war was declared","title":"get_wars_war_id_declared"},"started":{"type":"string","format":"date-time","description":"Time when the war started and both sides could shoot each other","title":"get_wars_war_id_started"},"retracted":{"type":"string","format":"date-time","description":"Time the war was retracted but both sides could still shoot each other","title":"get_wars_war_id_retracted"},"finished":{"type":"string","format":"date-time","description":"Time the war ended and shooting was no longer allowed","title":"get_wars_war_id_finished"},"mutual":{"type":"boolean","description":"Was the war declared mutual by both parties","title":"get_wars_war_id_mutual"},"open_for_allies":{"type":"boolean","description":"Is the war currently open for allies or not","title":"get_wars_war_id_open_for_allies"},"aggressor":{"type":"object","description":"The aggressor corporation or alliance that declared this war, only contains either corporation_id or alliance_id","required":["ships_killed","isk_destroyed"],"properties":{"corporation_id":{"type":"integer","format":"int32","description":"Corporation ID if and only if the aggressor is a corporation","title":"get_wars_war_id_corporation_id"},"alliance_id":{"type":"integer","format":"int32","description":"Alliance ID if and only if the aggressor is an alliance","title":"get_wars_war_id_alliance_id"},"ships_killed":{"type":"integer","format":"int32","description":"The number of ships the aggressor has killed","title":"get_wars_war_id_ships_killed"},"isk_destroyed":{"type":"number","format":"float","description":"ISK value of ships the aggressor has destroyed","title":"get_wars_war_id_isk_destroyed"}},"title":"get_wars_war_id_aggressor"},"defender":{"type":"object","description":"The defending corporation or alliance that declared this war, only contains either corporation_id or alliance_id","required":["ships_killed","isk_destroyed"],"properties":{"corporation_id":{"type":"integer","format":"int32","description":"Corporation ID if and only if the defender is a corporation","title":"get_wars_war_id_corporation_id"},"alliance_id":{"type":"integer","format":"int32","description":"Alliance ID if and only if the defender is an alliance","title":"get_wars_war_id_alliance_id"},"ships_killed":{"type":"integer","format":"int32","description":"The number of ships the defender has killed","title":"get_wars_war_id_ships_killed"},"isk_destroyed":{"type":"number","format":"float","description":"ISK value of ships the defender has killed","title":"get_wars_war_id_isk_destroyed"}},"title":"get_wars_war_id_defender"},"allies":{"type":"array","description":"allied corporations or alliances, each object contains either corporation_id or alliance_id","maxItems":10000,"items":{"type":"object","properties":{"corporation_id":{"type":"integer","format":"int32","description":"Corporation ID if and only if this ally is a corporation","title":"get_wars_war_id_corporation_id"},"alliance_id":{"type":"integer","format":"int32","description":"Alliance ID if and only if this ally is an alliance","title":"get_wars_war_id_alliance_id"}},"title":"get_wars_war_id_ally","description":"ally object"},"title":"get_wars_war_id_allies"}},"title":"get_wars_war_id_ok","description":"200 ok object"},"headers":{"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"422":{"description":"War not found","schema":{"type":"object","title":"get_wars_war_id_unprocessable_entity","description":"Unprocessable entity","properties":{"error":{"type":"string","description":"Unprocessable entity message","title":"get_wars_war_id_422_unprocessable_entity"}}},"examples":{"application/json":{"error":"Unprocessable entity message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_wars_war_id","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}},"/v1/wars/{war_id}/killmails/":{"get":{"description":"Return a list of kills related to a war\n\n---\n\nThis route is cached for up to 3600 seconds","summary":"List kills for a war","tags":["Wars"],"parameters":[{"$ref":"#/parameters/datasource"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/user_agent"},{"name":"war_id","in":"path","description":"A valid war ID","required":true,"type":"integer","format":"int32"},{"$ref":"#/parameters/X-User-Agent"}],"responses":{"200":{"description":"A list of killmail IDs and hashes","examples":{"application/json":[{"killmail_id":2,"killmail_hash":"8eef5e8fb6b88fe3407c489df33822b2e3b57a5e"},{"killmail_id":1,"killmail_hash":"b41ccb498ece33d64019f64c0db392aa3aa701fb"}]},"schema":{"type":"array","maxItems":2000,"items":{"type":"object","required":["killmail_id","killmail_hash"],"properties":{"killmail_id":{"type":"integer","format":"int32","description":"ID of this killmail","title":"get_wars_war_id_killmails_killmail_id"},"killmail_hash":{"type":"string","description":"A hash of this killmail","title":"get_wars_war_id_killmails_killmail_hash"}},"title":"get_wars_war_id_killmails_200_ok","description":"200 ok object"},"title":"get_wars_war_id_killmails_ok","description":"200 ok array"},"headers":{"X-Pages":{"description":"Maximum page number","type":"integer","format":"int32","default":1},"Cache-Control":{"description":"The caching mechanism used","type":"string"},"Last-Modified":{"description":"RFC7231 formatted datetime string","type":"string"},"Expires":{"description":"RFC7231 formatted datetime string","type":"string"}}},"422":{"description":"War not found","schema":{"type":"object","title":"get_wars_war_id_killmails_unprocessable_entity","description":"Unprocessable entity","properties":{"error":{"type":"string","description":"Unprocessable entity message","title":"get_wars_war_id_killmails_422_unprocessable_entity"}}},"examples":{"application/json":{"error":"Unprocessable entity message"}}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/internal_server_error"},"examples":{"application/json":{"error":"Internal server error message"}}}},"operationId":"get_wars_war_id_killmails","x-cached-seconds":3600,"x-alternate-versions":["dev","legacy","v1"]}}}} \ No newline at end of file diff --git a/setup_waitlists.py b/setup_waitlists.py index 992d06e3..e20c8880 100644 --- a/setup_waitlists.py +++ b/setup_waitlists.py @@ -35,10 +35,10 @@ def createWaitlistGroup(groupName, displayName): if db.session.query(WaitlistGroup).filter(WaitlistGroup.groupName == groupName).first() is not None: print("Found Group ", groupName) return None - xuplist = Waitlist(name=WaitlistNames.xup_queue, displayTitle="X-UP") - logilist = Waitlist(name=WaitlistNames.logi, displayTitle="Logi") - dpslist = Waitlist(name=WaitlistNames.dps, displayTitle="Dps") - sniperlist = Waitlist(name=WaitlistNames.sniper, displayTitle="Sniper") + xuplist = Waitlist(name=WaitlistNames.xup_queue, displayTitle="X-UP", waitlistType='xup') + logilist = Waitlist(name=WaitlistNames.logi, displayTitle="Logi", waitlistType='logi') + dpslist = Waitlist(name=WaitlistNames.dps, displayTitle="Dps", waitlistType='dps') + sniperlist = Waitlist(name=WaitlistNames.sniper, displayTitle="Sniper", waitlistType='sniper') group = WaitlistGroup() group.groupName = groupName group.displayName = displayName diff --git a/static/js/accounts/commandcorelist.js b/static/js/accounts/commandcorelist.js index 7ecb1cbe..9b8406f1 100644 --- a/static/js/accounts/commandcorelist.js +++ b/static/js/accounts/commandcorelist.js @@ -1,20 +1,25 @@ +EditableGrid.prototype.initializeGrid = function() { + this.setCellRenderer("Account Name", new AccountCellRenderer()); +}; + $(document).ready(function() { + let getMetaData = waitlist.base.getMetaData; + var canViewProfile = getMetaData('can-view-profile') === "True"; var editableGrid = new EditableGrid( "CommandCore", { enableSort: true, pageSize: 10, maxBars: 5 - }, - $.parseHTML('')[0], - $.parseHTML('')[0]); + }); editableGrid.load({ metadata: [ { name: "Account Name", - datatype: "html", - editable: false + datatype: "string", + editable: false, + values: [{"value": "canViewProfile", "label": canViewProfile}] }, { name: "Roles", datatype: "string", @@ -28,6 +33,7 @@ $(document).ready(function() { }); editableGrid.attachToHTMLTable('commanderlist'); + editableGrid.initializePaginator(); editableGrid.initializeGrid(); editableGrid.renderGrid(); $('#filter').on('keyup', function() { diff --git a/static/js/accounts/settings-accounts.js b/static/js/accounts/settings-accounts.js index b83e7f9f..1043df9f 100644 --- a/static/js/accounts/settings-accounts.js +++ b/static/js/accounts/settings-accounts.js @@ -183,11 +183,12 @@ waitlist.accounts = (function() { editable: false }, { name: "Account Name", - datatype: "html", - editable: false + datatype: "string", + editable: false, + values: [{"value": "canViewProfile", "label": true}] }, { name: "Roles", - datatype: "string", + datatype: "html", editable: false }, { name: "Current Char", @@ -206,6 +207,7 @@ waitlist.accounts = (function() { }); editableGrid.attachToHTMLTable('acctable'); + editableGrid.initializePaginator(); editableGrid.initializeGrid(); editableGrid.renderGrid(); $('#filter').on('keyup', function() { @@ -221,4 +223,8 @@ waitlist.accounts = (function() { $(document).ready(init); return {}; -})(); \ No newline at end of file +})(); + +EditableGrid.prototype.initializeGrid = function() { + this.setCellRenderer("Account Name", new AccountCellRenderer()); +}; \ No newline at end of file diff --git a/static/js/editablegrid/editablegrid.js b/static/js/editablegrid/editablegrid.js index 197e9df9..e438ff18 100644 --- a/static/js/editablegrid/editablegrid.js +++ b/static/js/editablegrid/editablegrid.js @@ -1,5 +1,5 @@ if (typeof _$ == 'undefined') { - var _$ = function(elementId) { return document.getElementById(elementId); } + function _$(elementId) { return document.getElementById(elementId); } } /** @@ -24,6 +24,7 @@ function Column(config) thousands_separator: '.', unit_before_number: false, bar: true, // is the column to be displayed in a bar chart ? relevant only for numerical columns + hidden: false, // should the column be hidden by default headerRenderer: null, headerEditor: null, cellRenderer: null, @@ -31,6 +32,7 @@ function Column(config) cellValidators: [], enumProvider: null, optionValues: null, + optionValuesForRender: null, columnIndex: -1 }; @@ -39,13 +41,21 @@ function Column(config) } Column.prototype.getOptionValuesForRender = function(rowIndex) { + if (!this.enumProvider) { + console.log('getOptionValuesForRender called on column ' + this.name + ' but there is no EnumProvider'); + return null; + } var values = this.enumProvider.getOptionValuesForRender(this.editablegrid, this, rowIndex); - return values ? values : this.optionValues; + return values ? values : this.optionValuesForRender; }; Column.prototype.getOptionValuesForEdit = function(rowIndex) { + if (!this.enumProvider) { + console.log('getOptionValuesForEdit called on column ' + this.name + ' but there is no EnumProvider'); + return null; + } var values = this.enumProvider.getOptionValuesForEdit(this.editablegrid, this, rowIndex); - return values ? values : this.optionValues; + return values ? this.editablegrid._convertOptions(values) : this.optionValues; }; Column.prototype.isValid = function(value) { @@ -102,11 +112,16 @@ function EnumProvider(config) *
  • smartColorsBar: colors used for rendering (stacked) bar charts
  • *
  • smartColorsPie: colors used for rendering pie charts
  • *
  • pageSize: maximum number of rows displayed (0 means we don't want any pagination, which is the default)
  • + *
  • sortIconDown: icon used to show desc order
  • + *
  • sortIconUp: icon used to show asc order
  • * * @constructor * @class EditableGrid */ -function EditableGrid(name, config, sortDownIndicator, sortUpIndicator) { if (name) this.init(name, config, sortDownIndicator, sortUpIndicator); } +function EditableGrid(name, config) { + if (typeof name != 'undefined' && name.replace(/\s+/g,'') == "") console.error("EditableGrid() : parameter [name] cannot be empty."); + if (name) this.init(name, config); +} /** * Default properties @@ -114,7 +129,7 @@ function EditableGrid(name, config, sortDownIndicator, sortUpIndicator) { if (na EditableGrid.prototype.enableSort = true; EditableGrid.prototype.enableStore = true; EditableGrid.prototype.doubleclick = false; -EditableGrid.prototype.editmode = "absolute" +EditableGrid.prototype.editmode = "absolute"; EditableGrid.prototype.editorzoneid = ""; EditableGrid.prototype.allowSimultaneousEdition = false; EditableGrid.prototype.saveOnBlur = true; @@ -125,10 +140,18 @@ EditableGrid.prototype.dateFormat = "EU"; EditableGrid.prototype.shortMonthNames = null; EditableGrid.prototype.smartColorsBar = ["#dc243c","#4040f6","#00f629","#efe100","#f93fb1","#6f8183","#111111"]; EditableGrid.prototype.smartColorsPie = ["#FF0000","#00FF00","#0000FF","#FFD700","#FF00FF","#00FFFF","#800080"]; -EditableGrid.prototype.pageSize = 0; - -EditableGrid.prototype.init = function (name, config, sortDownIndicator, sortUpIndicator) -{ +EditableGrid.prototype.pageSize = 0; // client-side pagination, don't set this for server-side pagination! + +//server-side pagination, sorting and filtering +EditableGrid.prototype.serverSide = false; +EditableGrid.prototype.pageCount = 0; +EditableGrid.prototype.totalRowCount = 0; +EditableGrid.prototype.unfilteredRowCount = 0; +EditableGrid.prototype.paginatorAttributes = null; +EditableGrid.prototype.lastURL = null; + +EditableGrid.prototype.init = function (name, config) +{ if (typeof name != "string" || (typeof config != "object" && typeof config != "undefined")) { alert("The EditableGrid constructor takes two arguments:\n- name (string)\n- config (object)\n\nGot instead " + (typeof name) + " and " + (typeof config) + "."); }; @@ -144,6 +167,11 @@ EditableGrid.prototype.init = function (name, config, sortDownIndicator, sortUpI MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/) }; + if (typeof this.detectDir != 'function') { + var error = new Error(); + alert("Who is calling me now ? " + error.stack); + } + // private data this.name = name; this.columns = []; @@ -162,19 +190,28 @@ EditableGrid.prototype.init = function (name, config, sortDownIndicator, sortUpI this.currentTableid = null; if (this.enableSort) { - if (typeof sortUpIndicator == "undefined") { - this.sortUpImage = new Image(); - this.sortUpImage.src = this.baseUrl + "/images/bullet_arrow_up.png"; + if ( typeof config != "undefined" && typeof config['sortIconUp'] != "undefined" ) { + this.sortUpElement = new Image(); + this.sortUpElement.src = config['sortIconUp']; } else { - this.sortUpImage = sortUpIndicator; + this.sortUpElement = document.createElement('span'); + this.sortUpElement.innerHTML = '↑' // Unicode 'up' arrow } - if (typeof sortDownIndicator == "undefined") { - this.sortDownImage = new Image(); - this.sortDownImage.src = this.baseUrl + "/images/bullet_arrow_down.png"; + + if ( typeof config != "undefined" && typeof config['sortIconDown'] != "undefined" ) { + this.sortDownElement = new Image(); + this.sortDownElement.src = config['sortIconDown']; } else { - this.sortDownImage = sortDownIndicator; + this.sortDownElement = document.createElement('span'); + this.sortDownElement.innerHTML = '↓' // Unicode 'down' arrow } } + + // restore stored parameters, or use default values if nothing stored + this.currentPageIndex = this.localisset('pageIndex') ? parseInt(this.localget('pageIndex')) : 0; + this.sortedColumnName = this.localisset('sortColumnIndexOrName') ? this.localget('sortColumnIndexOrName') : -1; + this.sortDescending = this.localisset('sortColumnIndexOrName') && this.localisset('sortDescending') ? this.localget('sortDescending') == 'true' : false; + this.currentFilter = this.localisset('filter') ? this.localget('filter') : null; }; /** @@ -186,62 +223,62 @@ EditableGrid.prototype.chartRendered = function() {}; EditableGrid.prototype.tableRendered = function(containerid, className, tableid) {}; EditableGrid.prototype.tableSorted = function(columnIndex, descending) {}; EditableGrid.prototype.tableFiltered = function() {}; +EditableGrid.prototype.openedCellEditor = function(rowIndex, columnIndex) {}; EditableGrid.prototype.modelChanged = function(rowIndex, columnIndex, oldValue, newValue, row) {}; EditableGrid.prototype.rowSelected = function(oldRowIndex, newRowIndex) {}; EditableGrid.prototype.isHeaderEditable = function(rowIndex, columnIndex) { return false; }; EditableGrid.prototype.isEditable =function(rowIndex, columnIndex) { return true; }; EditableGrid.prototype.readonlyWarning = function() {}; +/** Notifies that a row has been deleted */ +EditableGrid.prototype.rowRemoved = function(oldRowIndex, rowId) {}; /** * Load metadata and/or data from an XML url * The callback "tableLoaded" is called when loading is complete. */ -EditableGrid.prototype.loadXML = function(url) +EditableGrid.prototype.loadXML = function(url, callback, dataOnly) { - // we use a trick to avoid getting an old version from the browser's cache - var orig_url = url; - var sep = url.indexOf('?') >= 0 ? '&' : '?'; - url += sep + Math.floor(Math.random() * 100000); - + this.lastURL = url; + var self = this; // IE if (window.ActiveXObject) { this.xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); this.xmlDoc.onreadystatechange = function() { - if (this.xmlDoc.readyState == 4) { - this.processXML(); - this.tableLoaded(); + if (self.xmlDoc.readyState == 4) { + self.processXML(); + self._callback('xml', callback); } }; - this.xmlDoc.load(url); + this.xmlDoc.load(this._addUrlParameters(url, dataOnly)); } - // Safari - else if (/*Browser.WebKit && */ window.XMLHttpRequest) + // generic Ajax + else if (window.XMLHttpRequest) { this.xmlDoc = new XMLHttpRequest(); this.xmlDoc.onreadystatechange = function () { if (this.readyState == 4) { - this.xmlDoc = this.responseXML; - if (!this.xmlDoc) { /* alert("Could not load XML from url '" + orig_url + "'"); */ return false; } - this.processXML(); - this.tableLoaded(); + self.xmlDoc = this.responseXML; + if (!self.xmlDoc) { console.error("Could not load XML from url '" + url + "'"); return false; } + self.processXML(); + self._callback('xml', callback); } }; - this.xmlDoc.open("GET", url, true); + this.xmlDoc.open("GET", this._addUrlParameters(url, dataOnly), true); this.xmlDoc.send(""); } - // Firefox (and other browsers) + // Firefox (and some other browsers) else if (document.implementation && document.implementation.createDocument) { this.xmlDoc = document.implementation.createDocument("", "", null); this.xmlDoc.onload = function() { - this.processXML(); - this.tableLoaded(); + self.processXML(); + self._callback('xml', callback); }; - this.xmlDoc.load(url); + this.xmlDoc.load(this._addUrlParameters(url, dataOnly)); } // should never happen @@ -287,7 +324,7 @@ EditableGrid.prototype.processXML = function() this.table = null; // load metadata (only one tag --> metadata[0]) - var metadata = this.xmlDoc.getElementsByTagName("metadata"); + var metadata = xmlDoc.getElementsByTagName("metadata"); if (metadata && metadata.length >= 1) { this.columns = []; @@ -299,26 +336,34 @@ EditableGrid.prototype.processXML = function() var datatype = col.getAttribute("datatype"); // get enumerated values if any + var optionValuesForRender = null; var optionValues = null; var enumValues = col.getElementsByTagName("values"); if (enumValues.length > 0) { - optionValues = {}; + optionValues = []; + optionValuesForRender = {}; var enumGroups = enumValues[0].getElementsByTagName("group"); if (enumGroups.length > 0) { for (var g = 0; g < enumGroups.length; g++) { - var groupOptionValues = {}; + var groupOptionValues = []; enumValues = enumGroups[g].getElementsByTagName("value"); for (var v = 0; v < enumValues.length; v++) { - groupOptionValues[enumValues[v].getAttribute("value")] = enumValues[v].firstChild ? enumValues[v].firstChild.nodeValue : ""; + var _value = enumValues[v].getAttribute("value"); + var _label = enumValues[v].firstChild ? enumValues[v].firstChild.nodeValue : ""; + optionValuesForRender[_value] = _label; + groupOptionValues.push({ value: _value, label: _label }); } - optionValues[enumGroups[g].getAttribute("label")] = groupOptionValues; + optionValues.push({ label: enumGroups[g].getAttribute("label"), values: groupOptionValues}); } } else { enumValues = enumValues[0].getElementsByTagName("value"); for (var v = 0; v < enumValues.length; v++) { - optionValues[enumValues[v].getAttribute("value")] = enumValues[v].firstChild ? enumValues[v].firstChild.nodeValue : ""; + var _value = enumValues[v].getAttribute("value"); + var _label = enumValues[v].firstChild ? enumValues[v].firstChild.nodeValue : ""; + optionValuesForRender[_value] = _label; + optionValues.push({ value: _value, label: _label }); } } } @@ -330,6 +375,8 @@ EditableGrid.prototype.processXML = function() datatype: (col.getAttribute("datatype") ? col.getAttribute("datatype") : "string"), editable: col.getAttribute("editable") == "true", bar: (col.getAttribute("bar") ? col.getAttribute("bar") == "true" : true), + hidden: (col.getAttribute("hidden") ? col.getAttribute("hidden") == "true" : false), + optionValuesForRender: optionValuesForRender, optionValues: optionValues })); } @@ -338,8 +385,20 @@ EditableGrid.prototype.processXML = function() processColumns(); } + // load server-side pagination data + var paginator = xmlDoc.getElementsByTagName("paginator"); + if (paginator && paginator.length >= 1) { + this.paginatorAttributes = null; // TODO: paginator[0].getAllAttributesAsPOJO; + this.pageCount = paginator[0].getAttribute('pagecount'); + this.totalRowCount = paginator[0].getAttribute('totalrowcount'); + this.unfilteredRowCount = paginator[0].getAttribute('unfilteredrowcount'); + } + + // if no row id is provided, we create one since we need one + var defaultRowId = 1; + // load content - var rows = this.xmlDoc.getElementsByTagName("row"); + var rows = xmlDoc.getElementsByTagName("row"); for (var i = 0; i < rows.length; i++) { // get all defined cell values @@ -348,14 +407,14 @@ EditableGrid.prototype.processXML = function() for (var j = 0; j < cols.length; j++) { var colname = cols[j].getAttribute("name"); if (!colname) { - if (j >= columns.length) alert("You defined too many columns for row " + (i+1)); + if (j >= columns.length) console.error("You defined too many columns for row " + (i+1)); else colname = columns[j].name; } cellValues[colname] = cols[j].firstChild ? cols[j].firstChild.nodeValue : ""; } // for each row we keep the orginal index, the id and all other attributes that may have been set in the XML - var rowData = { visible: true, originalIndex: i, id: rows[i].getAttribute("id") ? rows[i].getAttribute("id") : "" }; + var rowData = { visible: true, originalIndex: i, id: rows[i].getAttribute("id") !== null ? rows[i].getAttribute("id") : defaultRowId++ }; for (var attrIndex = 0; attrIndex < rows[i].attributes.length; attrIndex++) { var node = rows[i].attributes.item(attrIndex); if (node.nodeName != "id") rowData[node.nodeName] = node.nodeValue; @@ -379,12 +438,10 @@ EditableGrid.prototype.processXML = function() * Load metadata and/or data from a JSON url * The callback "tableLoaded" is called when loading is complete. */ -EditableGrid.prototype.loadJSON = function(url) +EditableGrid.prototype.loadJSON = function(url, callback, dataOnly) { - // we use a trick to avoid getting an old version from the browser's cache - var orig_url = url; - var sep = url.indexOf('?') >= 0 ? '&' : '?'; - url += sep + Math.floor(Math.random() * 100000); + this.lastURL = url; + var self = this; // should never happen if (!window.XMLHttpRequest) { @@ -395,18 +452,54 @@ EditableGrid.prototype.loadJSON = function(url) var ajaxRequest = new XMLHttpRequest(); ajaxRequest.onreadystatechange = function () { if (this.readyState == 4) { - if (!this.responseText) { /* alert("Could not load JSON from url '" + orig_url + "'"); */ return false; } - if (!this.processJSON(this.responseText)) { alert("Invalid JSON data obtained from url '" + orig_url + "'"); return false; } - this.tableLoaded(); + if (!this.responseText) { console.error("Could not load JSON from url '" + url + "'"); return false; } + if (!self.processJSON(this.responseText)) { console.error("Invalid JSON data obtained from url '" + url + "'"); return false; } + self._callback('json', callback); } }; - ajaxRequest.open("GET", url, true); + ajaxRequest.open("GET", this._addUrlParameters(url, dataOnly), true); ajaxRequest.send(""); return true; }; +EditableGrid.prototype._addUrlParameters = function(baseUrl, dataOnly) +{ + // we add a dummy timestamp parameter to avoid getting an old version from the browser's cache + var sep = baseUrl.indexOf('?') >= 0 ? '&' : '?'; + baseUrl += sep + (new Date().getTime()); + + if (!this.serverSide) return baseUrl; + + // add pagination, filtering and sorting parameters to the base url + return baseUrl + + "&page=" + (this.currentPageIndex + 1) + + "&filter=" + (this.currentFilter ? encodeURIComponent(this.currentFilter) : "") + + "&sort=" + (this.sortedColumnName && this.sortedColumnName != -1 ? encodeURIComponent(this.sortedColumnName) : "") + + "&asc=" + (this.sortDescending ? 0 : 1) + + (dataOnly ? '&data_only=1' : ''); +}; + +EditableGrid.prototype._callback = function(type, callback) +{ + if (callback) callback.call(this); + else { + + if (this.serverSide) { + + // deferred refreshGrid: first load the updated data from the server then call the original refreshGrid + this.refreshGrid = function(baseUrl) { + var callback = function() { EditableGrid.prototype.refreshGrid.call(this); }; + var load = type == 'xml' ? this.loadXML : this.loadJSON; + load.call(this, baseUrl || this.lastURL, callback, true); + }; + } + + this.tableLoaded(); + } +}; + /** * Load metadata and/or data from a JSON string * No callback "tableLoaded" is called since this is a synchronous operation. @@ -425,6 +518,44 @@ EditableGrid.prototype.load = function(object) return this.processJSON(object); }; +/** + * Update and render data for given rows from a Javascript object + */ +EditableGrid.prototype.update = function(object) +{ + if (object.data) for (var i = 0; i < object.data.length; i++) + { + var row = object.data[i]; + if (!row.id || !row.values) continue; + + // get row to update in our model + var rowIndex = this.getRowIndex(row.id); + var rowData = this.data[rowIndex]; + + // row values can be given as an array (same order as columns) or as an object (associative array) + if (Object.prototype.toString.call(row.values) !== '[object Array]' ) cellValues = row.values; + else { + cellValues = {}; + for (var j = 0; j < row.values.length && j < this.columns.length; j++) cellValues[this.columns[j].name] = row.values[j]; + } + + // set all attributes that may have been set in the JSON + for (var attributeName in row) if (attributeName != "id" && attributeName != "values") rowData[attributeName] = row[attributeName]; + + // get column values for this rows + rowData.columns = []; + for (var c = 0; c < this.columns.length; c++) { + var cellValue = this.columns[c].name in cellValues ? cellValues[this.columns[c].name] : ""; + rowData.columns.push(this.getTypedValue(c, cellValue)); + } + + // render row + var tr = this.getRow(rowIndex); + for (var j = 0; j < tr.cells.length && j < this.columns.length; j++) if (this.columns[j].renderable) this.columns[j].cellRenderer._render(rowIndex, j, tr.cells[j], this.getValueAt(rowIndex,j)); + this.tableRendered(this.currentContainerid, this.currentClassName, this.currentTableid); + } +}; + /** * Process the JSON content * @private @@ -446,20 +577,52 @@ EditableGrid.prototype.processJSON = function(jsonData) this.columns = []; for (var c = 0; c < jsonData.metadata.length; c++) { var columndata = jsonData.metadata[c]; + + var optionValues = columndata.values ? this._convertOptions(columndata.values) : null; + var optionValuesForRender = null; + if (optionValues) { + + // build a fast lookup structure for rendering + var optionValuesForRender = {}; + for (var optionIndex = 0; optionIndex < optionValues.length; optionIndex++) { + var optionValue = optionValues[optionIndex]; + if (typeof optionValue.values == 'object') { + for (var groupOptionIndex = 0; groupOptionIndex < optionValue.values.length; groupOptionIndex++) { + var groupOptionValue = optionValue.values[groupOptionIndex]; + optionValuesForRender[groupOptionValue.value] = groupOptionValue.label; + } + } + else optionValuesForRender[optionValue.value] = optionValue.label; + } + } + this.columns.push(new Column({ name: columndata.name, label: (columndata.label ? columndata.label : columndata.name), datatype: (columndata.datatype ? columndata.datatype : "string"), editable: (columndata.editable ? true : false), - bar: (typeof columndata.bar == 'undefined' ? true : (columndata.bar ? true : false)), - optionValues: columndata.values ? columndata.values : null + bar: (typeof columndata.bar == 'undefined' ? true : (columndata.bar || false)), + hidden: (typeof columndata.hidden == 'undefined' ? false : (columndata.hidden ? true : false)), + optionValuesForRender: optionValuesForRender, + optionValues: optionValues })); } - + // process columns this.processColumns(); } + // load server-side pagination data + if (jsonData.paginator) { + this.paginatorAttributes = jsonData.paginator; + this.pageCount = jsonData.paginator.pagecount; + this.totalRowCount = jsonData.paginator.totalrowcount; + this.unfilteredRowCount = jsonData.paginator.unfilteredrowcount; + } + + // if no row id is provided, we create one since we need one + var defaultRowId = 1; + // load content if (jsonData.data) for (var i = 0; i < jsonData.data.length; i++) { @@ -468,11 +631,14 @@ EditableGrid.prototype.processJSON = function(jsonData) // row values can be given as an array (same order as columns) or as an object (associative array) if (Object.prototype.toString.call(row.values) !== '[object Array]' ) cellValues = row.values; - else for (var j = 0; j < row.values.length && j < this.columns.length; j++) cellValues[this.columns[j].name] = row.values[j]; + else { + cellValues = {}; + for (var j = 0; j < row.values.length && j < this.columns.length; j++) cellValues[this.columns[j].name] = row.values[j]; + } // for each row we keep the orginal index, the id and all other attributes that may have been set in the JSON - var rowData = { visible: true, originalIndex: i, id: row.id ? row.id : "" }; - for (var attributeName in row) if (attributeName != "id") rowData[attributeName] = row[attributeName]; + var rowData = { visible: true, originalIndex: i, id: row.id !== undefined && row.id !== null ? row.id : defaultRowId++ }; + for (var attributeName in row) if (attributeName != "id" && attributeName != "values") rowData[attributeName] = row[attributeName]; // get column values for this rows rowData.columns = []; @@ -528,6 +694,14 @@ EditableGrid.prototype.processColumns = function() EditableGrid.prototype.parseColumnType = function(column) { + // reset + column.unit = null; + column.precision = -1; + column.decimal_point = ','; + column.thousands_separator = '.'; + column.unit_before_number = false; + column.nansymbol = ''; + // extract precision, unit and number format from type if 6 given if (column.datatype.match(/(.*)\((.*),(.*),(.*),(.*),(.*),(.*)\)$/)) { column.datatype = RegExp.$1; @@ -602,11 +776,14 @@ EditableGrid.prototype.parseColumnType = function(column) EditableGrid.prototype.getTypedValue = function(columnIndex, cellValue) { + if (cellValue === null) return cellValue; + var colType = this.getColumnType(columnIndex); - if (colType == 'boolean') cellValue = (cellValue && cellValue != 0 && cellValue != "false") ? true : false; + if (colType == 'boolean') cellValue = (cellValue && cellValue != 0 && cellValue != "false" && cellValue != "f") ? true : false; if (colType == 'integer') { cellValue = parseInt(cellValue, 10); } if (colType == 'double') { cellValue = parseFloat(cellValue); } if (colType == 'string') { cellValue = "" + cellValue; } + return cellValue; }; @@ -625,12 +802,13 @@ EditableGrid.prototype.attachToHTMLTable = function(_table, _columns) // process columns if given if (_columns) { this.columns = _columns; + for (var columnIndex = 0; columnIndex < this.columns.length; columnIndex++) this.columns[columnIndex].optionValues = this._convertOptions(this.columns[columnIndex].optionValues); // convert options from old format if needed this.processColumns(); } // get pointers to table components this.table = typeof _table == 'string' ? _$(_table) : _table ; - if (!this.table) alert("Invalid table given: " + _table); + if (!this.table) console.error("Invalid table given: " + _table); this.tHead = this.table.tHead; this.tBody = this.table.tBodies[0]; @@ -684,19 +862,20 @@ EditableGrid.prototype.attachToHTMLTable = function(_table, _columns) EditableGrid.prototype._createCellRenderer = function(column) { column.cellRenderer = - column.enumProvider ? new EnumCellRenderer() : - column.datatype == "integer" || column.datatype == "double" ? new NumberCellRenderer() : - column.datatype == "boolean" ? new CheckboxCellRenderer() : - column.datatype == "email" ? new EmailCellRenderer() : - column.datatype == "website" || column.datatype == "url" ? new WebsiteCellRenderer() : - column.datatype == "date" ? new DateCellRenderer() : - new CellRenderer(); + column.enumProvider && column.datatype == "list" && typeof MultiselectCellRenderer != 'undefined' ? new MultiselectCellRenderer() : + column.enumProvider ? new EnumCellRenderer() : + column.datatype == "integer" || column.datatype == "double" ? new NumberCellRenderer() : + column.datatype == "boolean" ? new CheckboxCellRenderer() : + column.datatype == "email" ? new EmailCellRenderer() : + column.datatype == "website" || column.datatype == "url" ? new WebsiteCellRenderer() : + column.datatype == "date" ? new DateCellRenderer() : + new CellRenderer(); - // give access to the column from the cell renderer - if (column.cellRenderer) { - column.cellRenderer.editablegrid = this; - column.cellRenderer.column = column; - } + // give access to the column from the cell renderer + if (column.cellRenderer) { + column.cellRenderer.editablegrid = this; + column.cellRenderer.column = column; + } }; /** @@ -721,19 +900,22 @@ EditableGrid.prototype._createHeaderRenderer = function(column) EditableGrid.prototype._createCellEditor = function(column) { column.cellEditor = - column.enumProvider ? new SelectCellEditor() : - column.datatype == "integer" || column.datatype == "double" ? new NumberCellEditor(column.datatype) : - column.datatype == "boolean" ? null : - column.datatype == "email" ? new TextCellEditor(column.precision) : - column.datatype == "website" || column.datatype == "url" ? new TextCellEditor(column.precision) : - column.datatype == "date" ? (typeof $ == 'undefined' || typeof $.datepicker == 'undefined' ? new TextCellEditor(column.precision, 10) : new DateCellEditor({ fieldSize: column.precision, maxLength: 10 })) : - new TextCellEditor(column.precision); + column.enumProvider && column.datatype == "list" && typeof MultiselectCellEditor != 'undefined' ? new MultiselectCellEditor() : + column.enumProvider ? new SelectCellEditor() : + column.datatype == "integer" || column.datatype == "double" ? new NumberCellEditor(column.datatype) : + column.datatype == "boolean" ? null : + column.datatype == "email" ? new TextCellEditor(column.precision) : + column.datatype == "website" || column.datatype == "url" ? new TextCellEditor(column.precision) : + column.datatype == "date" ? (typeof jQuery == 'undefined' || typeof jQuery.datepicker == 'undefined' ? new TextCellEditor(column.precision, 10) : new DateCellEditor({ fieldSize: column.precision, maxLength: 10 })) : + new TextCellEditor(column.precision); + + // give access to the column from the cell editor + if (column.cellEditor) { + column.cellEditor.editablegrid = this; + column.cellEditor.column = column; + } + - // give access to the column from the cell editor - if (column.cellEditor) { - column.cellEditor.editablegrid = this; - column.cellEditor.column = column; - } }; /** @@ -759,6 +941,29 @@ EditableGrid.prototype.getRowCount = function() return this.data.length; }; +/** + * Returns the number of rows, not taking the filter into account if any + */ +EditableGrid.prototype.getUnfilteredRowCount = function() +{ + // given if server-side filtering is involved + if (this.unfilteredRowCount > 0) return this.unfilteredRowCount; + + var _data = this.dataUnfiltered == null ? this.data : this.dataUnfiltered; + return _data.length; +}; + +/** + * Returns the number of rows in all pages + */ +EditableGrid.prototype.getTotalRowCount = function() +{ + // different from getRowCount only is server-side pagination is involved + if (this.totalRowCount > 0) return this.totalRowCount; + + return this.getRowCount(); +}; + /** * Returns the number of columns */ @@ -783,7 +988,7 @@ EditableGrid.prototype.hasColumn = function(columnIndexOrName) EditableGrid.prototype.getColumn = function(columnIndexOrName) { var colIndex = this.getColumnIndex(columnIndexOrName); - if (colIndex < 0) { alert("[getColumn] Column not found with index or name " + columnIndexOrName); return null; } + if (colIndex < 0) { console.error("[getColumn] Column not found with index or name " + columnIndexOrName); return null; } return this.columns[colIndex]; }; @@ -842,6 +1047,17 @@ EditableGrid.prototype.isColumnBar = function(columnIndexOrName) return (column.bar && column.isNumerical()); }; +/** + * Returns the stack of a column (for stacked bar charts) + * @param {Object} columnIndexOrName index or name of the column + */ +EditableGrid.prototype.getColumnStack = function(columnIndexOrName) +{ + var column = this.getColumn(columnIndexOrName); + return column.isNumerical() ? column.bar : ''; +}; + + /** * Returns true if the column is numerical (double or integer) * @param {Object} columnIndexOrName index or name of the column @@ -860,13 +1076,13 @@ EditableGrid.prototype.isColumnNumerical = function(columnIndexOrName) EditableGrid.prototype.getValueAt = function(rowIndex, columnIndex) { // check and get column - if (columnIndex < 0 || columnIndex >= this.columns.length) { alert("[getValueAt] Invalid column index " + columnIndex); return null; } + if (columnIndex < 0 || columnIndex >= this.columns.length) { console.error("[getValueAt] Invalid column index " + columnIndex); return null; } var column = this.columns[columnIndex]; // get value in model if (rowIndex < 0) return column.label; - if (typeof this.data[rowIndex] == 'undefined') { alert("[getValueAt] Invalid row index " + rowIndex); return null; } + if (typeof this.data[rowIndex] == 'undefined') { console.error("[getValueAt] Invalid row index " + rowIndex); return null; } var rowData = this.data[rowIndex]['columns']; return rowData ? rowData[columnIndex] : null; }; @@ -878,13 +1094,10 @@ EditableGrid.prototype.getValueAt = function(rowIndex, columnIndex) */ EditableGrid.prototype.getDisplayValueAt = function(rowIndex, columnIndex) { + // use renderer to get the value that must be used for sorting and filtering var value = this.getValueAt(rowIndex, columnIndex); - if (value !== null) { - // use renderer to get the value that must be used for sorting - var renderer = rowIndex < 0 ? this.columns[columnIndex].headerRenderer : this.columns[columnIndex].cellRenderer; - value = renderer.getDisplayValue(rowIndex, value); - } - return value; + var renderer = rowIndex < 0 ? this.columns[columnIndex].headerRenderer : this.columns[columnIndex].cellRenderer; + return renderer.getDisplayValue(rowIndex, value); }; @@ -901,7 +1114,7 @@ EditableGrid.prototype.setValueAt = function(rowIndex, columnIndex, value, rende var previousValue = null;; // check and get column - if (columnIndex < 0 || columnIndex >= this.columns.length) { alert("[setValueAt] Invalid column index " + columnIndex); return null; } + if (columnIndex < 0 || columnIndex >= this.columns.length) { console.error("[setValueAt] Invalid column index " + columnIndex); return null; } var column = this.columns[columnIndex]; // set new value in model @@ -910,6 +1123,12 @@ EditableGrid.prototype.setValueAt = function(rowIndex, columnIndex, value, rende column.label = value; } else { + + if (typeof this.data[rowIndex] == 'undefined') { + console.error('Invalid rowindex ' + rowIndex); + return null; + } + var rowData = this.data[rowIndex]['columns']; previousValue = rowData[columnIndex]; if (rowData) rowData[columnIndex] = this.getTypedValue(columnIndex, value); @@ -917,8 +1136,9 @@ EditableGrid.prototype.setValueAt = function(rowIndex, columnIndex, value, rende // render new value if (render) { - var renderer = rowIndex < 0 ? column.headerRenderer : column.cellRenderer; - renderer._render(rowIndex, columnIndex, this.getCell(rowIndex, columnIndex), value); + var renderer = rowIndex < 0 ? column.headerRenderer : column.cellRenderer; + var cell = this.getCell(rowIndex, columnIndex); + if (cell) renderer._render(rowIndex, columnIndex, cell, value); } return previousValue; @@ -950,7 +1170,7 @@ EditableGrid.prototype.getColumnIndex = function(columnIndexOrName) EditableGrid.prototype.getRow = function(rowIndex) { if (rowIndex < 0) return this.tHead.rows[rowIndex + this.nbHeaderRows]; - if (typeof this.data[rowIndex] == 'undefined') { alert("[getRow] Invalid row index " + rowIndex); return null; } + if (typeof this.data[rowIndex] == 'undefined') { console.error("[getRow] Invalid row index " + rowIndex); return null; } return _$(this._getRowDOMId(this.data[rowIndex].id)); }; @@ -981,6 +1201,11 @@ EditableGrid.prototype.getRowIndex = function(rowId) */ EditableGrid.prototype.getRowAttribute = function(rowIndex, attributeName) { + if (typeof this.data[rowIndex] == 'undefined') { + console.error('Invalid rowindex ' + rowIndex); + return null; + } + return this.data[rowIndex][attributeName]; }; @@ -1035,6 +1260,9 @@ EditableGrid.prototype.remove = function(rowIndex) this.data.splice(rowIndex, 1); if (this.dataUnfiltered != null) for (var r = 0; r < this.dataUnfiltered.length; r++) if (this.dataUnfiltered[r].id == rowId) { this.dataUnfiltered.splice(r, 1); break; } + // callback + this.rowRemoved(rowIndex,rowId); + // refresh grid this.refreshGrid(); }; @@ -1060,12 +1288,12 @@ EditableGrid.prototype.getRowValues = function(rowIndex) */ EditableGrid.prototype.append = function(rowId, cellValues, rowAttributes, dontSort) { - return this.insertAfter(this.data.length - 1, rowId, cellValues, rowAttributes, dontSort); + return this.insert(this.data.length, rowId, cellValues, rowAttributes, dontSort); }; /** * Append row with given id and data - * Deprecated: use appendRow instead + * Deprecated: use append instead * @param {Integer} rowId id of new row * @param {Integer} columns * @param {Boolean} dontSort @@ -1101,7 +1329,7 @@ EditableGrid.prototype._insert = function(rowIndex, offset, rowId, cellValues, r // build data for new row var rowData = { visible: true, originalIndex: originalIndex, id: rowId }; - if (rowAttributes) for (var attributeName in rowAttributes) rowData[attributeName] = rowAttributes[attrName]; + if (rowAttributes) for (var attributeName in rowAttributes) rowData[attributeName] = rowAttributes[attributeName]; rowData.columns = []; for (var c = 0; c < this.columns.length; c++) { var cellValue = this.columns[c].name in cellValues ? cellValues[this.columns[c].name] : ""; @@ -1136,7 +1364,7 @@ EditableGrid.prototype._insert = function(rowIndex, offset, rowId, cellValues, r EditableGrid.prototype.insert = function(rowIndex, rowId, cellValues, rowAttributes, dontSort) { if (rowIndex < 0) rowIndex = 0; - if (rowIndex >= this.data.length) return this.insertAfter(this.data.length - 1, rowId, cellValues, rowAttributes, dontSort); + if (rowIndex >= this.data.length && this.data.length > 0) return this.insertAfter(this.data.length - 1, rowId, cellValues, rowAttributes, dontSort); return this._insert(rowIndex, 0, rowId, cellValues, rowAttributes, dontSort); }; @@ -1150,7 +1378,7 @@ EditableGrid.prototype.insert = function(rowIndex, rowId, cellValues, rowAttribu EditableGrid.prototype.insertAfter = function(rowIndex, rowId, cellValues, rowAttributes, dontSort) { if (rowIndex < 0) return this.insert(0, rowId, cellValues, rowAttributes, dontSort); - if (rowIndex >= this.data.length) rowIndex = this.data.length - 1; + if (rowIndex >= this.data.length) rowIndex = Math.max(0, this.data.length - 1); return this._insert(rowIndex, 1, rowId, cellValues, rowAttributes, dontSort); }; @@ -1162,7 +1390,7 @@ EditableGrid.prototype.insertAfter = function(rowIndex, rowId, cellValues, rowAt EditableGrid.prototype.setHeaderRenderer = function(columnIndexOrName, cellRenderer) { var columnIndex = this.getColumnIndex(columnIndexOrName); - if (columnIndex < 0) alert("[setHeaderRenderer] Invalid column: " + columnIndexOrName); + if (columnIndex < 0) console.error("[setHeaderRenderer] Invalid column: " + columnIndexOrName); else { var column = this.columns[columnIndex]; column.headerRenderer = (this.enableSort && column.datatype != "html") ? new SortHeaderRenderer(column.name, cellRenderer) : cellRenderer; @@ -1187,7 +1415,7 @@ EditableGrid.prototype.setHeaderRenderer = function(columnIndexOrName, cellRende EditableGrid.prototype.setCellRenderer = function(columnIndexOrName, cellRenderer) { var columnIndex = this.getColumnIndex(columnIndexOrName); - if (columnIndex < 0) alert("[setCellRenderer] Invalid column: " + columnIndexOrName); + if (columnIndex < 0) console.error("[setCellRenderer] Invalid column: " + columnIndexOrName); else { var column = this.columns[columnIndex]; column.cellRenderer = cellRenderer; @@ -1208,7 +1436,7 @@ EditableGrid.prototype.setCellRenderer = function(columnIndexOrName, cellRendere EditableGrid.prototype.setCellEditor = function(columnIndexOrName, cellEditor) { var columnIndex = this.getColumnIndex(columnIndexOrName); - if (columnIndex < 0) alert("[setCellEditor] Invalid column: " + columnIndexOrName); + if (columnIndex < 0) console.error("[setCellEditor] Invalid column: " + columnIndexOrName); else { var column = this.columns[columnIndex]; column.cellEditor = cellEditor; @@ -1229,7 +1457,7 @@ EditableGrid.prototype.setCellEditor = function(columnIndexOrName, cellEditor) EditableGrid.prototype.setHeaderEditor = function(columnIndexOrName, cellEditor) { var columnIndex = this.getColumnIndex(columnIndexOrName); - if (columnIndex < 0) alert("[setHeaderEditor] Invalid column: " + columnIndexOrName); + if (columnIndex < 0) console.error("[setHeaderEditor] Invalid column: " + columnIndexOrName); else { var column = this.columns[columnIndex]; column.headerEditor = cellEditor; @@ -1250,12 +1478,19 @@ EditableGrid.prototype.setHeaderEditor = function(columnIndexOrName, cellEditor) EditableGrid.prototype.setEnumProvider = function(columnIndexOrName, enumProvider) { var columnIndex = this.getColumnIndex(columnIndexOrName); - if (columnIndex < 0) alert("[setEnumProvider] Invalid column: " + columnIndexOrName); - else this.columns[columnIndex].enumProvider = enumProvider; - - // we must recreate the cell renderer and editor for this column - this._createCellRenderer(this.columns[columnIndex]); - this._createCellEditor(this.columns[columnIndex]); + if (columnIndex < 0) console.error("[setEnumProvider] Invalid column: " + columnIndexOrName); + else { + var hadProviderAlready = this.columns[columnIndex].enumProvider != null; + this.columns[columnIndex].enumProvider = enumProvider; + + // if needed, we recreate the cell renderer and editor for this column + // if the column had an enum provider already, the render/editor previously created by default is ok already + // ... and we don't want to erase a custom renderer/editor that may have been set before calling setEnumProvider + if (!hadProviderAlready) { + this._createCellRenderer(this.columns[columnIndex]); + this._createCellEditor(this.columns[columnIndex]); + } + } }; /** @@ -1265,7 +1500,7 @@ EditableGrid.prototype.setEnumProvider = function(columnIndexOrName, enumProvide EditableGrid.prototype.clearCellValidators = function(columnIndexOrName) { var columnIndex = this.getColumnIndex(columnIndexOrName); - if (columnIndex < 0) alert("[clearCellValidators] Invalid column: " + columnIndexOrName); + if (columnIndex < 0) console.error("[clearCellValidators] Invalid column: " + columnIndexOrName); else this.columns[columnIndex].cellValidators = []; }; @@ -1276,7 +1511,7 @@ EditableGrid.prototype.clearCellValidators = function(columnIndexOrName) EditableGrid.prototype.addDefaultCellValidators = function(columnIndexOrName) { var columnIndex = this.getColumnIndex(columnIndexOrName); - if (columnIndex < 0) alert("[addDefaultCellValidators] Invalid column: " + columnIndexOrName); + if (columnIndex < 0) console.error("[addDefaultCellValidators] Invalid column: " + columnIndexOrName); return this._addDefaultCellValidators(this.columns[columnIndex]); }; @@ -1300,7 +1535,7 @@ EditableGrid.prototype._addDefaultCellValidators = function(column) EditableGrid.prototype.addCellValidator = function(columnIndexOrName, cellValidator) { var columnIndex = this.getColumnIndex(columnIndexOrName); - if (columnIndex < 0) alert("[addCellValidator] Invalid column: " + columnIndexOrName); + if (columnIndex < 0) console.error("[addCellValidator] Invalid column: " + columnIndexOrName); else this.columns[columnIndex].cellValidators.push(cellValidator); }; @@ -1321,7 +1556,7 @@ EditableGrid.prototype.setCaption = function(caption) EditableGrid.prototype.getCell = function(rowIndex, columnIndex) { var row = this.getRow(rowIndex); - if (row == null) { alert("[getCell] Invalid row index " + rowIndex); return null; } + if (row == null) { console.error("[getCell] Invalid row index " + rowIndex); return null; } return row.cells[columnIndex]; }; @@ -1353,6 +1588,34 @@ EditableGrid.prototype.getCellY = function(oElement) return iReturnValue; }; +/** + * Get X scroll offset relative to the first non static offset parent + * @private + */ +EditableGrid.prototype.getScrollXOffset = function(oElement) +{ + var iReturnValue = 0; + while (oElement != null && typeof oElement.scrollLeft != 'undefined' && this.isStatic(oElement) && oElement != document.body) try { + iReturnValue += parseInt(oElement.scrollLeft); + oElement = oElement.parentNode; + } catch(err) { oElement = null; } + return iReturnValue; +}; + +/** + * Get Y scroll offset relative to the first non static offset parent + * @private + */ +EditableGrid.prototype.getScrollYOffset = function(oElement) +{ + var iReturnValue = 0; + while (oElement != null && typeof oElement.scrollTop != 'undefined' && this.isStatic(oElement) && oElement != document.body) try { + iReturnValue += parseInt(oElement.scrollTop); + oElement = oElement.parentNode; + } catch(err) { oElement = null; } + return iReturnValue; +}; + /** * Private * @param containerid @@ -1362,6 +1625,9 @@ EditableGrid.prototype.getCellY = function(oElement) */ EditableGrid.prototype._rendergrid = function(containerid, className, tableid) { + this.lastSelectedRowIndex = -1; + var _currentPageIndex = this.getCurrentPageIndex(); + // if we are already attached to an existing table, just update the cell contents if (typeof this.table != "undefined" && this.table != null) { @@ -1386,7 +1652,7 @@ EditableGrid.prototype._rendergrid = function(containerid, className, tableid) } } else { - if (skipped < this.pageSize * this.currentPageIndex) { + if (skipped < this.pageSize * _currentPageIndex) { skipped++; if (rows[i].style.display != 'none') { rows[i].style.display = 'none'; @@ -1395,12 +1661,13 @@ EditableGrid.prototype._rendergrid = function(containerid, className, tableid) } else { displayed++; - var rowData = []; var cols = rows[i].cells; if (typeof rows[i].hidden_by_editablegrid != 'undefined' && rows[i].hidden_by_editablegrid) { rows[i].style.display = ''; rows[i].hidden_by_editablegrid = false; } + rows[i].rowId = this.getRowId(rowIndex); + rows[i].id = this._getRowDOMId(rows[i].rowId); for (var j = 0; j < cols.length && j < this.columns.length; j++) if (this.columns[j].renderable) this.columns[j].cellRenderer._render(rowIndex, j, cols[j], this.getValueAt(rowIndex,j)); } @@ -1417,7 +1684,8 @@ EditableGrid.prototype._rendergrid = function(containerid, className, tableid) // we must render a whole new table else { - if (!_$(containerid)) return alert("Unable to get element [" + containerid + "]"); + if (!containerid) return console.error("Container ID not specified (renderGrid not called yet ?)"); + if (!_$(containerid)) return console.error("Unable to get element [" + containerid + "]"); this.currentContainerid = containerid; this.currentClassName = className; @@ -1428,8 +1696,8 @@ EditableGrid.prototype._rendergrid = function(containerid, className, tableid) // paginate if required if (this.pageSize > 0) { - startRowIndex = this.currentPageIndex * this.pageSize; - endRowIndex = Math.min(this.getRowCount(), startRowIndex + this.pageSize); + startRowIndex = _currentPageIndex * pageSize; + endRowIndex = Math.min(this.getRowCount(), startRowIndex + pageSize); } // create editablegrid table and add it to our container @@ -1437,10 +1705,10 @@ EditableGrid.prototype._rendergrid = function(containerid, className, tableid) this.table.className = className || "editablegrid"; if (typeof tableid != "undefined") this.table.id = tableid; while (_$(containerid).hasChildNodes()) _$(containerid).removeChild(_$(containerid).firstChild); - _$(containerid).appendChild(table); + _$(containerid).appendChild(this.table); // create header - if (this.caption) { + if (caption) { var captionElement = document.createElement("CAPTION"); captionElement.innerHTML = this.caption; this.table.appendChild(captionElement); @@ -1461,8 +1729,8 @@ EditableGrid.prototype._rendergrid = function(containerid, className, tableid) this.table.appendChild(tBody); var insertRowIndex = 0; for (var i = startRowIndex; i < endRowIndex; i++) { - var tr = this.tBody.insertRow(insertRowIndex++); - tr.rowId = this.data[i]['id']; + var tr = tBody.insertRow(insertRowIndex++); + tr.rowId = data[i]['id']; tr.id = this._getRowDOMId(data[i]['id']); for (j = 0; j < columnCount; j++) { @@ -1474,7 +1742,7 @@ EditableGrid.prototype._rendergrid = function(containerid, className, tableid) // attach handler on click or double click _$(containerid).editablegrid = this; - if (this.doubleclick) _$(containerid).ondblclick = function(e) { this.editablegrid.mouseClicked(e); }; + if (doubleclick) _$(containerid).ondblclick = function(e) { this.editablegrid.mouseClicked(e); }; else _$(containerid).onclick = function(e) { this.editablegrid.mouseClicked(e); }; } @@ -1496,24 +1764,17 @@ EditableGrid.prototype._rendergrid = function(containerid, className, tableid) */ EditableGrid.prototype.renderGrid = function(containerid, className, tableid) { - // restore stored parameters, or use default values if nothing stored - var pageIndex = this.localisset('pageIndex') ? parseInt(this.localget('pageIndex')) : 0; - this.sortedColumnName = this.localisset('sortColumnIndexOrName') && this.hasColumn(this.localget('sortColumnIndexOrName')) ? this.localget('sortColumnIndexOrName') : -1; - this.sortDescending = this.localisset('sortColumnIndexOrName') && this.localisset('sortDescending') ? this.localget('sortDescending') == 'true' : false; - this.currentFilter = this.localisset('filter') ? this.localget('filter') : null; - // actually render grid - this.currentPageIndex = 0; this._rendergrid(containerid, className, tableid); - // sort and filter table - this.sort() ; - this.filter(); - - // go to stored page (or first if nothing stored) - this.setPageIndex(pageIndex); + // if client side: sort and filter + if (!this.serverSide) { + this.sort() ; + this.filter(); + } }; + /** * Refreshes the grid * @return @@ -1530,17 +1791,17 @@ EditableGrid.prototype.refreshGrid = function() */ EditableGrid.prototype._renderHeaders = function() { - var rows = this.tHead.rows; - for (var i = 0; i < 1 /*rows.length*/; i++) { - var rowData = []; - var cols = rows[i].cells; - var columnIndexInModel = 0; - for (var j = 0; j < cols.length && columnIndexInModel < this.columns.length; j++) { - this.columns[columnIndexInModel].headerRenderer._render(-1, columnIndexInModel, cols[j], this.columns[columnIndexInModel].label); - var colspan = parseInt(cols[j].getAttribute("colspan")); - columnIndexInModel += colspan > 1 ? colspan : 1; - } + var rows = this.tHead.rows; + for (var i = 0; i < 1 /*rows.length*/; i++) { + var rowData = []; + var cols = rows[i].cells; + var columnIndexInModel = 0; + for (var j = 0; j < cols.length && columnIndexInModel < this.columns.length; j++) { + this.columns[columnIndexInModel].headerRenderer._render(-1, columnIndexInModel, cols[j], this.columns[columnIndexInModel].label); + var colspan = parseInt(cols[j].getAttribute("colspan")); + columnIndexInModel += colspan > 1 ? colspan : 1; } + } }; /** @@ -1551,6 +1812,7 @@ EditableGrid.prototype._renderHeaders = function() EditableGrid.prototype.mouseClicked = function(e) { e = e || window.event; + // get row and column index from the clicked cell var target = e.target || e.srcElement; @@ -1565,11 +1827,24 @@ EditableGrid.prototype.mouseClicked = function(e) var rowIndex = this.getRowIndex(target.parentNode); var columnIndex = target.cellIndex; + this.editCell(rowIndex, columnIndex); +}; + +/** + * Edit Cell + * @param rowIndex + * @param columnIndex + * @private + */ +EditableGrid.prototype.editCell = function(rowIndex, columnIndex) +{ + var target = this.getCell(rowIndex, columnIndex); + var column = this.columns[columnIndex]; if (column) { // if another row has been selected: callback - if (rowIndex > -1 && rowIndex != this.lastSelectedRowIndex) { + if (rowIndex > -1) { this.rowSelected(this.lastSelectedRowIndex, rowIndex); this.lastSelectedRowIndex = rowIndex; } @@ -1578,141 +1853,252 @@ EditableGrid.prototype.mouseClicked = function(e) if (!column.editable) { this.readonlyWarning(column); } else { if (rowIndex < 0) { - if (column.headerEditor && this.isHeaderEditable(rowIndex, columnIndex)) + if (column.headerEditor && this.isHeaderEditable(rowIndex, columnIndex)) column.headerEditor.edit(rowIndex, columnIndex, target, column.label); } else if (column.cellEditor && this.isEditable(rowIndex, columnIndex)) - column.cellEditor.edit(rowIndex, columnIndex, target, getValueAt(rowIndex, columnIndex)); + column.cellEditor.edit(rowIndex, columnIndex, target, this.getValueAt(rowIndex, columnIndex)); } } }; /** - * Sort on a column - * @param {Object} columnIndexOrName index or name of the column - * @param {Boolean} descending + * Moves columns around (added by JRE) + * @param {array[strings]} an array of class names of the headers + * returns boolean based on success */ -EditableGrid.prototype.sort = function(columnIndexOrName, descending, backOnFirstPage) +EditableGrid.prototype.sortColumns = function(headerArray) { - if (typeof columnIndexOrName == 'undefined' && this.sortedColumnName === -1) { + newColumns = []; + newColumnIndices = []; - // avoid a double render, but still send the expected callback - this.tableSorted(-1, this.sortDescending); - return true; - } + for (var i = 0; i < headerArray.length; i++) { - if (typeof columnIndexOrName == 'undefined') columnIndexOrName = this.sortedColumnName; - if (typeof descending == 'undefined') descending = this.sortDescending; + columnIndex = this.getColumnIndex(headerArray[i]); + if (columnIndex == -1) { // a column could not be found. can't reorder anything or data may be lost + console.error("[sortColumns] Invalid column: " + columnIndex); + return false; + } - this.localset('sortColumnIndexOrName', columnIndexOrName); - this.localset('sortDescending', descending); + newColumns[i] = this.columns[columnIndex]; + newColumnIndices[i] = columnIndex; + } - var columnIndex = columnIndexOrName; - if (parseInt(columnIndex, 10) !== -1) { - columnIndex = this.getColumnIndex(columnIndexOrName); - if (columnIndex < 0) { - alert("[sort] Invalid column: " + columnIndexOrName); - return false; - } - } + // rearrange headers + this.columns = newColumns; - if (!this.enableSort) { - this.tableSorted(columnIndex, descending); - return; - } + // need to rearrange all of the data elements as well + for (var i = 0; i < this.data.length; i++) { + var myData = this.data[i]; + var myDataColumns = myData.columns; + var newDataColumns = []; - // work on unfiltered data - var filterActive = this.dataUnfiltered != null; - if (filterActive) this.data = this.dataUnfiltered; - - var type = columnIndex < 0 ? "" : this.getColumnType(columnIndex); - var row_array = []; - var rowCount = this.getRowCount(); - for (var i = 0; i < rowCount - (this.ignoreLastRow ? 1 : 0); i++) row_array.push([columnIndex < 0 ? null : this.getDisplayValueAt(i, columnIndex), i, this.data[i].originalIndex]); - row_array.sort(columnIndex < 0 ? this.unsort : - type == "integer" || type == "double" ? this.sort_numeric : - type == "boolean" ? this.sort_boolean : - type == "date" ? this.sort_date : - this.sort_alpha); - - if (descending) row_array = row_array.reverse(); - if (this.ignoreLastRow) row_array.push([columnIndex < 0 ? null : this.getDisplayValueAt(rowCount - 1, columnIndex), rowCount - 1, this.data[rowCount - 1].originalIndex]); - - // rebuild data using the new order - var _data = this.data; - this.data = []; - for (var i = 0; i < row_array.length; i++) this.data.push(_data[row_array[i][1]]); + for (var j = 0; j < myDataColumns.length; j++) { + newIndex = newColumnIndices[j]; + newDataColumns[j] = myDataColumns[newIndex]; + } - if (this.filterActive) { - - // keep only visible rows in data - this.dataUnfiltered = this.data; - this.data = []; - for (var r = 0; r < rowCount; r++) if (this.dataUnfiltered[r].visible) this.data.push(this.dataUnfiltered[r]); - } - - // refresh grid (back on first page if sort column has changed) and callback - if (this.backOnFirstPage) this.setPageIndex(0); else this.refreshGrid(); - this.tableSorted(columnIndex, descending); - return true; + this.data[i].columns = newDataColumns; + } + return true; }; - /** - * Filter the content of the table - * @param {String} filterString String string used to filter: all words must be found in the row + * Sort on a column + * @param {Object} columnIndexOrName index or name of the column + * @param {Boolean} descending */ -EditableGrid.prototype.filter = function(filterString) +EditableGrid.prototype.sort = function(columnIndexOrName, descending, backOnFirstPage) { - if (typeof filterString != 'undefined') { - this.currentFilter = filterString; - this.localset('filter', filterString); - } + if (typeof columnIndexOrName == 'undefined' && this.sortedColumnName === -1) { - // un-filter if no or empty filter set - if (this.currentFilter == null || this.currentFilter == "") { - if (this.dataUnfiltered != null) { - this.data = this.dataUnfiltered; - this.dataUnfiltered = null; - for (var r = 0; r < this.getRowCount(); r++) this.data[r].visible = true; - this.setPageIndex(0); - this.tableFiltered(); + // avoid a double render, but still send the expected callback + this.tableSorted(-1, this.sortDescending); + return true; } - return; - } - var words = this.currentFilter.toLowerCase().split(" "); + if (typeof columnIndexOrName == 'undefined') columnIndexOrName = this.sortedColumnName; + if (typeof descending == 'undefined') descending = this.sortDescending; - // work on unfiltered data - if (this.dataUnfiltered != null) this.data = this.dataUnfiltered; + this.localset('sortColumnIndexOrName', columnIndexOrName); + this.localset('sortDescending', descending); - var rowCount = this.getRowCount(); - var columnCount = this.getColumnCount(); - for (var r = 0; r < rowCount; r++) { - this.data[r].visible = true; - var rowContent = ""; - for (var c = 0; c < columnCount; c++) rowContent += this.getDisplayValueAt(r, c) + " "; + // if sorting is done on server-side, we are done here + if (this.serverSide) return backOnFirstPage ? this.setPageIndex(0) : this.refreshGrid(); - // if row contents does not match one word in the filter, hide the row - for (var i = 0; i < words.length; i++) { - if (rowContent.toLowerCase().indexOf(words[i]) < 0) { - this.data[r].visible = false; - break; + var columnIndex = columnIndexOrName; + // TODO: Check if we access this.columnIndex here or the local column index + if (parseInt(columnIndex, 10) !== -1) { + columnIndex = this.getColumnIndex(columnIndexOrName); + if (columnIndex < 0) { + console.error("[sort] Invalid column: " + columnIndexOrName); + return false; } } - } - // keep only visible rows in data - this.dataUnfiltered = this.data; - this.data = []; - for (var r = 0; r < rowCount; r++) if (this.dataUnfiltered[r].visible) this.data.push(this.dataUnfiltered[r]); + if (!this.enableSort) { + this.tableSorted(columnIndex, descending); + return; + } + + // work on unfiltered data + var filterActive = this.dataUnfiltered != null; + if (filterActive) this.data = this.dataUnfiltered; + + var type = columnIndex < 0 ? "" : this.getColumnType(columnIndex); + var row_array = []; + var rowCount = this.getRowCount(); + for (var i = 0; i < rowCount - (this.ignoreLastRow ? 1 : 0); i++) row_array.push([columnIndex < 0 ? null : this.getDisplayValueAt(i, columnIndex), i, this.data[i].originalIndex]); + + var sort_function = type == "integer" || type == "double" ? this.sort_numeric : type == "boolean" ? this.sort_boolean : type == "date" ? this.sort_date : this.sort_alpha; + row_array.sort(columnIndex < 0 ? this.unsort : this.sort_stable(sort_function, descending)); + if (this.ignoreLastRow) row_array.push([columnIndex < 0 ? null : this.getDisplayValueAt(rowCount - 1, columnIndex), rowCount - 1, this.data[rowCount - 1].originalIndex]); + + // rebuild data using the new order + var _data = this.data; + this.data = []; + for (var i = 0; i < row_array.length; i++) this.data.push(_data[row_array[i][1]]); + delete row_array; + + if (filterActive) { + + // keep only visible rows in data + this.dataUnfiltered = this.data; + this.data = []; + for (var r = 0; r < rowCount; r++) if (this.dataUnfiltered[r].visible) this.data.push(this.dataUnfiltered[r]); + } - // refresh grid (back on first page) and callback - this.setPageIndex(0); - this.tableFiltered(); + // refresh grid (back on first page if sort column has changed) and callback + if (backOnFirstPage) this.setPageIndex(0); else this.refreshGrid(); + this.tableSorted(columnIndex, descending); + return true; +}; + + +/** + * Filter the content of the table + * @param {String} filterString String string used to filter: all words must be found in the row + * @param {Array} cols Columns to sort. If cols is not specified, the filter will be done on all columns + */ +EditableGrid.prototype.filter = function(filterString, cols) +{ + if (typeof filterString != 'undefined') { + this.currentFilter = filterString; + this.localset('filter', filterString); + } + + // if filtering is done on server-side, we are done here + if (this.serverSide) return this.setPageIndex(0); + + // un-filter if no or empty filter set + if (this.currentFilter == null || this.currentFilter == "") { + if (this.dataUnfiltered != null) { + this.data = this.dataUnfiltered; + this.dataUnfiltered = null; + for (var r = 0; r < this.getRowCount(); r++) this.data[r].visible = true; + this.setPageIndex(0); + this.tableFiltered(); + } + return; + } + + var words = this.currentFilter.toLowerCase().split(" "); + + // work on unfiltered data + if (this.dataUnfiltered != null) this.data = this.dataUnfiltered; + + var rowCount = this.getRowCount(); + var columnCount = typeof cols != 'undefined' ? cols.length : this.getColumnCount(); + + for (var r = 0; r < rowCount; r++) { + var row = this.data[r]; + row.visible = true; + var rowContent = ""; + + // add column values + for (var c = 0; c < columnCount; c++) { + if (this.getColumnType(c) == 'boolean') continue; + var displayValue = this.getDisplayValueAt(r, typeof cols != 'undefined' ? cols[c] : c); + var value = this.getValueAt(r, typeof cols != 'undefined' ? cols[c] : c); + rowContent += displayValue + " " + (displayValue == value ? "" : value + " "); + } + + // add attribute values + for (var attributeName in row) { + if (attributeName != "visible" && attributeName != "originalIndex" && attributeName != "columns") rowContent += row[attributeName]; + } + + // if row contents do not match one word in the filter, hide the row + for (var i = 0; i < words.length; i++) { + var word = words[i]; + var match = false; + + // a word starting with "!" means that we want a NON match + var invertMatch = word.startsWith("!"); + if (invertMatch) word = word.substr(1); + + // if word is of the form "colname/attributename=value" or "colname/attributename!=value", only this column/attribute is used + var colindex = -1; + var attributeName = null; + if (word.contains("!=")) { + var parts = word.split("!="); + colindex = this.getColumnIndex(parts[0]); + if (colindex >= 0) { + word = parts[1]; + invertMatch = !invertMatch; + } + else if (typeof row[parts[0]] != 'undefined') { + attributeName = parts[0]; + word = parts[1]; + invertMatch = !invertMatch; + } + } + else if (word.contains("=")) { + var parts = word.split("="); + colindex = this.getColumnIndex(parts[0]); + if (colindex >= 0) word = parts[1]; + else if (typeof row[parts[0]] != 'undefined') { + attributeName = parts[0]; + word = parts[1]; + } + } + + // a word ending with "!" means that a column must match this word exactly + if (!word.endsWith("!")) { + if (colindex >= 0) match = (this.getValueAt(r, colindex) + ' ' + this.getDisplayValueAt(r, colindex)).trim().toLowerCase().indexOf(word) >= 0; + else if (attributeName !== null) match = (''+this.getRowAttribute(r, attributeName)).trim().toLowerCase().indexOf(word) >= 0; + else match = rowContent.toLowerCase().indexOf(word) >= 0; + } + else { + word = word.substr(0, word.length - 1); + if (colindex >= 0) match = (''+this.getDisplayValueAt(r, colindex)).trim().toLowerCase() == word || (''+this.getValueAt(r, colindex)).trim().toLowerCase() == word; + else if (attributeName !== null) match = (''+this.getRowAttribute(r, attributeName)).trim().toLowerCase() == word; + else for (var c = 0; c < columnCount; c++) { + if (this.getColumnType(typeof cols != 'undefined' ? cols[c] : c) == 'boolean') continue; + if ((''+this.getDisplayValueAt(r, typeof cols != 'undefined' ? cols[c] : c)).trim().toLowerCase() == word || (''+this.getValueAt(r, typeof cols != 'undefined' ? cols[c] : c)).trim().toLowerCase() == word) match = true; + } + } + + if (invertMatch ? match : !match) { + this.data[r].visible = false; + break; + } + } + } + + // keep only visible rows in data + this.dataUnfiltered = this.data; + this.data = []; + for (var r = 0; r < rowCount; r++) if (this.dataUnfiltered[r].visible) this.data.push(this.dataUnfiltered[r]); + + // refresh grid (back on first page) and callback + this.setPageIndex(0); + this.tableFiltered(); }; + + /** * Sets the page size(pageSize of 0 means no pagination) * @param {Integer} pageSize Integer page size @@ -1730,7 +2116,9 @@ EditableGrid.prototype.setPageSize = function(pageSize) */ EditableGrid.prototype.getPageCount = function() { - if (this.pageSize <= 0) { alert("getPageCount: no or invalid page size defined (" + this.pageSize + ")"); return -1; } + if (this.getRowCount() == 0) return 0; + if (this.pageCount > 0) return this.pageCount; // server side pagination + if (this.pageSize <= 0) return 1; // no client side pagination: one page return Math.ceil(this.getRowCount() / this.pageSize); }; @@ -1739,8 +2127,11 @@ EditableGrid.prototype.getPageCount = function() */ EditableGrid.prototype.getCurrentPageIndex = function() { - if (this.pageSize <= 0) { alert("getCurrentPage: no or invalid page size defined (" + this.pageSize + ")"); return -1; } - return this.currentPageIndex; + // if pagination is handled on the server side, pageSize will (must) be 0 + if (this.pageSize <= 0 && !this.serverSide) return 0; + + // if page index does not exist anymore, go to last page (without losing the information of the current page) + return Math.max(0, this.currentPageIndex >= this.getPageCount() ? this.getPageCount() - 1 : this.currentPageIndex); }; /** @@ -1810,7 +2201,7 @@ EditableGrid.prototype.canGoForward = function() /** * Returns an interval { startPageIndex: ..., endPageIndex: ... } so that a window of the given size is visible around the current page (hence the 'sliding'). - * If pagination is not enabled this method displays an alert and returns null. + * If pagination is not enabled this method displays an error and returns null. * If pagination is enabled but there is only one page this function returns null (wihtout error). * @param slidingWindowSize size of the visible window * @return @@ -1822,17 +2213,12 @@ EditableGrid.prototype.getSlidingPageInterval = function(slidingWindowSize) var curPageIndex = this.getCurrentPageIndex(); var startPageIndex = Math.max(0, curPageIndex - Math.floor(slidingWindowSize/2)); - var endPageIndex = Math.min(nbPages, curPageIndex + Math.floor(slidingWindowSize/2)); + var endPageIndex = Math.min(nbPages - 1, curPageIndex + Math.floor(slidingWindowSize/2)); if (endPageIndex - startPageIndex < slidingWindowSize) { - var diff = slidingWindowSize - (endPageIndex - startPageIndex); - endPageIndex = Math.min(nbPages, endPageIndex + diff); - // are we still missing some window part? - if (endPageIndex - startPageIndex < slidingWindowSize) { - diff = slidingWindowSize - (endPageIndex - startPageIndex); - startPageIndex = Math.max(0, startPageIndex - diff); - } - + var diff = slidingWindowSize - (endPageIndex - startPageIndex + 1); + startPageIndex = Math.max(0, startPageIndex - diff); + endPageIndex = Math.min(nbPages - 1, endPageIndex + diff); } return { startPageIndex: startPageIndex, endPageIndex: endPageIndex }; @@ -1855,7 +2241,7 @@ EditableGrid.prototype.getSlidingPageInterval = function(slidingWindowSize) EditableGrid.prototype.getPagesInInterval = function(interval, callback) { var pages = []; - for (var p = interval.startPageIndex; p < interval.endPageIndex; p++) { + for (var p = interval.startPageIndex; p <= interval.endPageIndex; p++) { pages.push(typeof callback == 'function' ? callback(p, p == this.getCurrentPageIndex()) : p); } return pages; diff --git a/static/js/editablegrid/editablegrid_customrenderer.js b/static/js/editablegrid/editablegrid_customrenderer.js new file mode 100644 index 00000000..8105f002 --- /dev/null +++ b/static/js/editablegrid/editablegrid_customrenderer.js @@ -0,0 +1,25 @@ +/** + * Account cell renderer + * @constructor + * @class Class to render a cell with Account names + */ +function AccountCellRenderer(config) { this.init(config); } +AccountCellRenderer.prototype = new CellRenderer(); + +AccountCellRenderer.prototype.render = function(element, value) +{ + if (this.column.optionValuesForRender["canViewProfile"] === true) { + let link = document.createElement("a"); + link.setAttribute("href", `/accounts/profile/byname/${value}`); + link.setAttribute("target", "_blank"); + link.textContent = value; + element.appendChild(link); + } else { + element.textContent = value; + } +}; + +AccountCellRenderer.prototype.getDisplayValue = function(rowIndex, value) +{ + return value; +}; \ No newline at end of file diff --git a/static/js/editablegrid/editablegrid_editors.js b/static/js/editablegrid/editablegrid_editors.js index d2e71525..e654cfff 100644 --- a/static/js/editablegrid/editablegrid_editors.js +++ b/static/js/editablegrid/editablegrid_editors.js @@ -18,11 +18,11 @@ CellEditor.prototype.edit = function(rowIndex, columnIndex, element, value) element.isEditing = true; element.rowIndex = rowIndex; element.columnIndex = columnIndex; - + // call the specialized getEditor method var editorInput = this.getEditor(element, value); if (!editorInput) return false; - + // give access to the cell editor and element from the editor widget editorInput.element = element; editorInput.celleditor = this; @@ -34,14 +34,44 @@ CellEditor.prototype.edit = function(rowIndex, columnIndex, element, value) editorInput.onkeydown = function(event) { event = event || window.event; - + // ENTER or TAB: apply value if (event.keyCode == 13 || event.keyCode == 9) { - this.onblur = null; - this.celleditor.applyEditing(this.element, this.celleditor.getEditorValue(this)); + + // backup onblur then remove it: it will be restored if editing could not be applied + this.onblur_backup = this.onblur; + this.onblur = null; + if (this.celleditor.applyEditing(this.element, this.celleditor.getEditorValue(this)) === false) this.onblur = this.onblur_backup; + + // TAB: move to next cell + if (event.keyCode == 9) { + if (this.element.rowIndex >= 0 && this.celleditor.editablegrid.getColumnCount() > 0 && this.celleditor.editablegrid.getRowCount() > 0) { + + var candidateRowIndex = this.element.rowIndex; + var candidateColumnIndex = this.element.columnIndex; + while (true) { + + // find next cell in grid + if (candidateColumnIndex < this.celleditor.editablegrid.getColumnCount() - 1) candidateColumnIndex++; + else { candidateRowIndex++; candidateColumnIndex = 0; } + if (!this.celleditor.editablegrid.getRow(candidateRowIndex)) candidateRowIndex = 0; + + // candidate cell is editable: edit it and break + var column = this.celleditor.editablegrid.getColumn(candidateColumnIndex); + if (column.editable && column.datatype != 'boolean' && this.celleditor.editablegrid.isEditable(candidateRowIndex, candidateColumnIndex)) { + this.celleditor.editablegrid.editCell(candidateRowIndex, candidateColumnIndex); + break; + } + + // if we ever come back to the original cell, break + if (candidateRowIndex == this.element.rowIndex && candidateColumnIndex == this.element.columnIndex) break; + } + } + } + return false; } - + // ESC: cancel editing if (event.keyCode == 27) { this.onblur = null; @@ -51,14 +81,26 @@ CellEditor.prototype.edit = function(rowIndex, columnIndex, element, value) }; // if simultaneous edition is not allowed, we cancel edition when focus is lost - if (!this.editablegrid.allowSimultaneousEdition) editorInput.onblur = this.editablegrid.saveOnBlur ? - function(event) { this.onblur = null; this.celleditor.applyEditing(this.element, this.celleditor.getEditorValue(this)); } : - function(event) { this.onblur = null; this.celleditor.cancelEditing(this.element); }; + if (!this.editablegrid.allowSimultaneousEdition) editorInput.onblur = this.editablegrid.saveOnBlur ? function(event) { + + // backup onblur then remove it: it will be restored if editing could not be applied + this.onblur_backup = this.onblur; + this.onblur = null; + if (this.celleditor.applyEditing(this.element, this.celleditor.getEditorValue(this)) === false) this.onblur = this.onblur_backup; + } + : function(event) { + this.onblur = null; + this.celleditor.cancelEditing(this.element); + }; // display the resulting editor widget this.displayEditor(element, editorInput); - + // give focus to the created editor + this.autoFocus(editorInput); +}; + +CellEditor.prototype.autoFocus = function(editorInput) { editorInput.focus(); }; @@ -79,13 +121,13 @@ CellEditor.prototype.displayEditor = function(element, editorInput, adjustX, adj // use same font in input as in cell content editorInput.style.fontFamily = this.editablegrid.getStyle(element, "fontFamily", "font-family"); editorInput.style.fontSize = this.editablegrid.getStyle(element, "fontSize", "font-size"); - + // static mode: add input field in the table cell if (this.editablegrid.editmode == "static") { while (element.hasChildNodes()) element.removeChild(element.firstChild); element.appendChild(editorInput); } - + // absolute mode: add input field in absolute position over table cell, leaving current content if (this.editablegrid.editmode == "absolute") { element.appendChild(editorInput); @@ -94,17 +136,21 @@ CellEditor.prototype.displayEditor = function(element, editorInput, adjustX, adj // position editor input on the cell with the same padding as the actual cell content (and center vertically if vertical-align is set to "middle") var paddingLeft = this.editablegrid.paddingLeft(element); var paddingTop = this.editablegrid.paddingTop(element); - var offsetScrollX = this.editablegrid.table.parentNode ? parseInt(this.editablegrid.table.parentNode.scrollLeft) : 0; - var offsetScrollY = this.editablegrid.table.parentNode ? parseInt(this.editablegrid.table.parentNode.scrollTop) : 0; + + // find scroll offset + var offsetScrollX = this.editablegrid.getScrollXOffset(element); + var offsetScrollY = this.editablegrid.getScrollYOffset(element); + + // position input var vCenter = this.editablegrid.verticalAlign(element) == "middle" ? (element.offsetHeight - editorInput.offsetHeight) / 2 - paddingTop : 0; editorInput.style.left = (this.editablegrid.getCellX(element) - offsetScrollX + paddingLeft + (adjustX ? adjustX : 0)) + "px"; editorInput.style.top = (this.editablegrid.getCellY(element) - offsetScrollY + paddingTop + vCenter + (adjustY ? adjustY : 0)) + "px"; - - // if number type: align field and its content to the right + + // if number type: align field and its content as the containing cell if (this.column.datatype == 'integer' || this.column.datatype == 'double') { var rightPadding = this.editablegrid.getCellX(element) - offsetScrollX + element.offsetWidth - (parseInt(editorInput.style.left) + editorInput.offsetWidth); editorInput.style.left = (parseInt(editorInput.style.left) + rightPadding) + "px"; - editorInput.style.textAlign = "right"; + editorInput.style.textAlign = EditableGrid.prototype.getStyle(element, 'textAlign', 'text-align'); } } @@ -114,6 +160,10 @@ CellEditor.prototype.displayEditor = function(element, editorInput, adjustX, adj while (editorzone.hasChildNodes()) editorzone.removeChild(editorzone.firstChild); editorzone.appendChild(editorInput); } + + if (element && element.isEditing && this.editablegrid.openedCellEditor) { + this.editablegrid.openedCellEditor(element.rowIndex, element.columnIndex); + } }; CellEditor.prototype._clearEditor = function(element) @@ -135,8 +185,8 @@ CellEditor.prototype.cancelEditing = function(element) // render value before editon var renderer = this == this.column.headerEditor ? this.column.headerRenderer : this.column.cellRenderer; - renderer._render(element.rowIndex, element.columnIndex, element, this.editablegrid.getValueAt(element.rowIndex, element.columnIndex)); - + this.renderer._render(element.rowIndex, element.columnIndex, element, this.editablegrid.getValueAt(element.rowIndex, element.columnIndex)); + this._clearEditor(element); } }; @@ -160,9 +210,12 @@ CellEditor.prototype.applyEditing = function(element, newValue) if (!this.editablegrid.isSame(newValue, previousValue)) { this.editablegrid.modelChanged(element.rowIndex, element.columnIndex, previousValue, newValue, this.editablegrid.getRow(element.rowIndex)); } - + this._clearEditor(element); + return true; } + + return false; }; /** @@ -202,7 +255,7 @@ TextCellEditor.prototype.getEditor = function(element, value) if (this.fieldSize > 0) htmlInput.setAttribute("size", this.fieldSize); else htmlInput.style.width = this.editablegrid.autoWidth(element) + 'px'; // auto-adapt width to cell, if no length specified - + var autoHeight = this.editablegrid.autoHeight(element); if (this.autoHeight) htmlInput.style.height = autoHeight + 'px'; // auto-adapt height to cell htmlInput.value = this.editorValue(value); @@ -220,7 +273,7 @@ TextCellEditor.prototype.displayEditor = function(element, htmlInput) // update style of input field this.updateStyle(htmlInput); - + // select text htmlInput.select(); }; @@ -231,20 +284,24 @@ TextCellEditor.prototype.displayEditor = function(element, htmlInput) * @class Class to edit a numeric cell with an HTML text input */ -function NumberCellEditor(type) { this.type = type; } +function NumberCellEditor(type, config) { + this.type = type; + this.init(config); +} + NumberCellEditor.prototype = new TextCellEditor(-1, 32); -// editorValue is called in getEditor to initialize field +//editorValue is called in getEditor to initialize field NumberCellEditor.prototype.editorValue = function(value) { - return isNaN(value) ? "" : (value + '').replace('.', this.column.decimal_point); + return (value === null || isNaN(value)) ? "" : (value + '').replace('.', this.column.decimal_point); }; -// getEditorValue is called before passing to isValid and applyEditing +//getEditorValue is called before passing to isValid and applyEditing NumberCellEditor.prototype.getEditorValue = function(editorInput) { return editorInput.value.replace(',', '.'); }; -// formatValue is called in applyEditing +//formatValue is called in applyEditing NumberCellEditor.prototype.formatValue = function(value) { return this.type == 'integer' ? parseInt(value) : parseFloat(value); @@ -265,68 +322,137 @@ function SelectCellEditor(config) { } SelectCellEditor.prototype = new CellEditor(); +SelectCellEditor.prototype.isValueSelected = function(htmlInput, optionValue, value) { return (!optionValue && !value) || (optionValue == value); }; SelectCellEditor.prototype.getEditor = function(element, value) { + var self = this; + // create select list var htmlInput = document.createElement("select"); // auto adapt dimensions to cell, with a min width - if (this.adaptWidth) htmlInput.style.width = Math.max(this.minWidth, this.editablegrid.autoWidth(element)) + 'px'; - if (this.adaptHeight) htmlInput.style.height = Math.max(this.minHeight, this.editablegrid.autoHeight(element)) + 'px'; + if (this.adaptWidth && typeof jQuery.fn.select2 == 'undefined') htmlInput.style.width = Math.max(this.minWidth, this.editablegrid.autoWidth(element)) + 'px'; + if (this.adaptHeight && typeof jQuery.fn.select2 == 'undefined') htmlInput.style.height = Math.max(this.minHeight, this.editablegrid.autoHeight(element)) + 'px'; // get column option values for this row var optionValues = this.column.getOptionValuesForEdit(element.rowIndex); - + // add these options, selecting the current one var index = 0, valueFound = false; - for (var optionValue in optionValues) { - + for (var optionIndex = 0; optionIndex < optionValues.length; optionIndex++) { + var optionValue = optionValues[optionIndex]; + // if values are grouped - if (typeof optionValues[optionValue] == 'object') { + if (typeof optionValue.values == 'object') { var optgroup = document.createElement('optgroup'); - optgroup.label = optionValue; + optgroup.label = optionValue.label; htmlInput.appendChild(optgroup); - var groupOptionValues = optionValues[optionValue]; - for (var optionValue in groupOptionValues) { - + for (var groupOptionIndex = 0; groupOptionIndex < optionValue.values.length; groupOptionIndex++) { + var groupOptionValue = optionValue.values[groupOptionIndex]; var option = document.createElement('option'); - option.text = groupOptionValues[optionValue]; - option.value = optionValue; - optgroup.appendChild(option); - if (optionValue == value) { htmlInput.selectedIndex = index; valueFound = true; } - index++; + option.text = groupOptionValue.label; + option.value = groupOptionValue.value ? groupOptionValue.value : ""; // this otherwise changes a null into a "null" ! + optgroup.appendChild(option); + if (this.isValueSelected(htmlInput, groupOptionValue.value, value)) { option.selected = true; valueFound = true; } else option.selected = false; + index++; } } else { var option = document.createElement('option'); - option.text = optionValues[optionValue]; - option.value = optionValue; + option.text = optionValue.label; + option.value = optionValue.value ? optionValue.value : ""; // this otherwise changes a null into a "null" ! // add does not work as expected in IE7 (cf. second arg) try { htmlInput.add(option, null); } catch (e) { htmlInput.add(option); } - if (optionValue == value) { htmlInput.selectedIndex = index; valueFound = true; } + if (this.isValueSelected(htmlInput, optionValue.value, value)) { option.selected = true; valueFound = true; } else option.selected = false; index++; } } - - // if the current value is not in the list add it to the front + + // if the current value is not in the list add it to the front, using display value as label if (!valueFound) { - var option = document.createElement('option'); - option.text = value ? value : ""; - option.value = value ? value : ""; - // add does not work as expected in IE7 (cf. second arg) + var option = document.createElement('option'); + var value_label = this.editablegrid.getDisplayValueAt(element.rowIndex, element.columnIndex); + option.text = value_label ? value_label : ""; + option.value = value ? value : ""; + // add does not work as expected in IE7 (cf. second arg) try { htmlInput.add(option, htmlInput.options[0]); } catch (e) { htmlInput.add(option); } htmlInput.selectedIndex = 0; } - + // when a new value is selected we apply it - htmlInput.onchange = function(event) { this.onblur = null; this.celleditor.applyEditing(this.element, this.value); }; - + htmlInput.onchange = function(event) { this.onblur = null; this.celleditor.applyEditing(this.element, self.getEditorValue(this)); }; + return htmlInput; }; +//redefine displayEditor to setup select2 +SelectCellEditor.prototype.displayEditor = function(element, htmlInput) +{ + // call base method + CellEditor.prototype.displayEditor.call(this, element, htmlInput); + + // use select2 if loaded + if (typeof jQuery.fn.select2 != 'undefined') { + + // select2 v4 calls onblur before onchange, when the value is not changed yet + htmlInput.onblur = null; + htmlInput.onchange = null; + + // setup and open + this.select2(element, htmlInput); + + // select2 v4 does not position right in X: do it then open so that drodown is also positioned correctly + jQuery(htmlInput).siblings('span.select2-container').css('position', 'absolute').css('left', htmlInput.style.left); + jQuery(htmlInput).select2('open'); + + // catches select2-blur and select2-close to apply (or cancel) editing + jQuery(htmlInput) + .on('select2:close', function() { this.celleditor.applyEditing(this.element, this.celleditor.getEditorValue(this)); }) // v4 + .on('select2-blur', function() { this.celleditor.applyEditing(this.element, this.celleditor.getEditorValue(this)); }) // v3 + .on('select2-close', function() { this.celleditor.applyEditing(this.element, this.celleditor.getEditorValue(this)); }); // v3 + } +}; + +SelectCellEditor.prototype.select2 = function(element, htmlInput) +{ + jQuery(htmlInput).select2({ + dropdownAutoWidth: true, + minimumResultsForSearch: 10 // since Select2 v4, escape and arrow keys will not work correctly if no search box present... cf. TODO in autoFocus below + }); +}; + +SelectCellEditor.prototype.autoFocus = function(editorInput) +{ + // no autofocus on original select otherwise this select appears when hitting arrow + if (typeof jQuery.fn.select2 != 'undefined') { + + // TODO: select2('open') does not give focus as when the user clicks... side effects = escape does not work and arrows scroll the whole body... unless a search box is present! + return true; + } + + return CellEditor.prototype.autoFocus.call(this, editorInput); +}; + +SelectCellEditor.prototype.getEditorValue = function(editorInput) +{ + // use select2 if loaded + if (typeof jQuery.fn.select2 != 'undefined') return jQuery(editorInput).val(); + + return CellEditor.prototype.getEditorValue.call(this, editorInput); +}; + +SelectCellEditor.prototype.cancelEditing = function(element) +{ + // destroy select2 if loaded + if (typeof jQuery.fn.select2 != 'undefined') jQuery(element).find('select').select2('destroy'); + + // call base method + CellEditor.prototype.cancelEditing.call(this, element); +}; + /** * Datepicker cell editor * @@ -347,17 +473,20 @@ function DateCellEditor(config) this.init(config); }; -// inherits TextCellEditor functionalities +//inherits TextCellEditor functionalities DateCellEditor.prototype = new TextCellEditor(); -// redefine displayEditor to setup datepicker +//redefine displayEditor to setup datepicker DateCellEditor.prototype.displayEditor = function(element, htmlInput) { // call base method TextCellEditor.prototype.displayEditor.call(this, element, htmlInput); - $(htmlInput).datepicker({ - dateFormat: this.editablegrid.dateFormat == "EU" ? "dd/mm/yy" : "mm/dd/yy", + jQuery(htmlInput).datepicker({ + dateFormat: (this.editablegrid.dateFormat == "EU" ? "dd/mm/yy" : "mm/dd/yy"), + changeMonth: true, + changeYear: true, + yearRange: "c-100:c+10", beforeShow: function() { // the field cannot be blurred until the datepicker has gone away // otherwise we get the "missing instance data" exception @@ -368,7 +497,7 @@ DateCellEditor.prototype.displayEditor = function(element, htmlInput) // apply date if any, otherwise call original onblur event if (dateText != '') this.celleditor.applyEditing(htmlInput.element, dateText); else if (this.onblur_backup != null) this.onblur_backup(); - + } }).datepicker('show'); -}; \ No newline at end of file +}; diff --git a/static/js/editablegrid/editablegrid_paginator.js b/static/js/editablegrid/editablegrid_paginator.js index f3368c49..c80de3ca 100644 --- a/static/js/editablegrid/editablegrid_paginator.js +++ b/static/js/editablegrid/editablegrid_paginator.js @@ -67,8 +67,7 @@ EditableGrid.prototype.updatePaginator = function() { } }; -EditableGrid.prototype.initializeGrid = function() { - console.log("Init Grid"); +EditableGrid.prototype.initializePaginator = function() { var editableGrid = this; this.tableRendered = function() { this.updatePaginator(); diff --git a/static/js/editablegrid/editablegrid_renderers.js b/static/js/editablegrid/editablegrid_renderers.js index b5af73be..92a241e5 100644 --- a/static/js/editablegrid/editablegrid_renderers.js +++ b/static/js/editablegrid/editablegrid_renderers.js @@ -22,23 +22,36 @@ CellRenderer.prototype._render = function(rowIndex, columnIndex, element, value) // remove existing content while (element.hasChildNodes()) element.removeChild(element.firstChild); - // always apply the number style to numerical cells and column headers + // clear isEditing (in case a currently editeed is being re-rendered by some external call) + element.isEditing = false; + + // always apply the number class to numerical cells and column headers if (this.column.isNumerical()) EditableGrid.prototype.addClassName(element, "number"); - // always apply the boolean style to boolean column headers + // always apply the boolean class to boolean column headers if (this.column.datatype == 'boolean') EditableGrid.prototype.addClassName(element, "boolean"); - + + // apply a css class corresponding to the column name + EditableGrid.prototype.addClassName(element, "editablegrid-" + this.column.name); + + // add a data-title attribute used for responsiveness + element.setAttribute('data-title', this.column.label); + // call the specialized render method - return this.render(element, typeof value == 'string' && this.column.datatype != "html" ? htmlspecialchars(value, 'ENT_NOQUOTES').replace(/\s\s/g, '  ') : value); + return this.render(element, typeof value == 'string' && this.column.datatype != "html" ? (value === null ? null : htmlspecialchars(value, 'ENT_NOQUOTES').replace(/ /g, '  ')) : value); }; -CellRenderer.prototype.render = function(element, value) +CellRenderer.prototype.render = function(element, value, escapehtml) { - element.innerHTML = value ? value : ""; + var _value = escapehtml ? (typeof value == 'string' && this.column.datatype != "html" ? (value === null ? null : htmlspecialchars(value, 'ENT_NOQUOTES').replace(/ /g, '  ')) : value) : value; + element.innerHTML = _value ? _value : ""; }; CellRenderer.prototype.getDisplayValue = function(rowIndex, value) { + // for html data type, sort and filter after replacing html entities + if (this.column.datatype == 'html') return html_entity_decode(value); + return value; }; @@ -52,28 +65,29 @@ function EnumCellRenderer(config) { this.init(config); } EnumCellRenderer.prototype = new CellRenderer(); EnumCellRenderer.prototype.getLabel = function(rowIndex, value) { - var label = ""; + var label = null; if (typeof value != 'undefined') { + value = value ? value : ''; var optionValues = this.column.getOptionValuesForRender(rowIndex); - if (value in optionValues) label = optionValues[value]; - for (var optionValue in optionValues) if (typeof optionValues[optionValue] == 'object' && value in optionValues[optionValue]) label = optionValues[optionValue][value]; - if (label == "") { + if (optionValues && value in optionValues) label = optionValues[value]; + if (label === null) { var isNAN = typeof value == 'number' && isNaN(value); label = isNAN ? "" : value; } } - return label; + return label ? label : ''; }; EnumCellRenderer.prototype.render = function(element, value) { - element.innerHTML = this.getLabel(element.rowIndex, value); + var label = this.getLabel(element.rowIndex, value); + element.innerHTML = label ? (this.column.datatype != "html" ? htmlspecialchars(label, 'ENT_NOQUOTES').replace(/\s\s/g, '  ') : label) : ''; }; EnumCellRenderer.prototype.getDisplayValue = function(rowIndex, value) { // if the column has enumerated values, sort and filter on the value label - return this.getLabel(rowIndex, value); + return value === null ? null : this.getLabel(rowIndex, value); }; /** @@ -88,23 +102,24 @@ NumberCellRenderer.prototype.render = function(element, value) { var column = this.column || {}; // in case somebody calls new NumberCellRenderer().render(..) - var isNAN = typeof value == 'number' && isNaN(value); + var isNAN = value === null || (typeof value == 'number' && isNaN(value)); var displayValue = isNAN ? (column.nansymbol || "") : value; if (typeof displayValue == 'number') { - + if (column.precision !== null) { // displayValue = displayValue.toFixed(column.precision); displayValue = number_format(displayValue, column.precision, column.decimal_point, column.thousands_separator); } - + if (column.unit !== null) { if (column.unit_before_number) displayValue = column.unit + ' ' + displayValue; else displayValue = displayValue + ' ' + column.unit; } } - + element.innerHTML = displayValue; - element.style.fontWeight = isNAN ? "normal" : ""; + if (isNAN) EditableGrid.prototype.addClassName(element, "nan"); + else EditableGrid.prototype.removeClassName(element, "nan"); }; /** @@ -126,6 +141,12 @@ CheckboxCellRenderer.prototype._render = function(rowIndex, columnIndex, element element.rowIndex = rowIndex; element.columnIndex = columnIndex; + // apply a css class corresponding to the column name + EditableGrid.prototype.addClassName(element, "editablegrid-" + this.column.name); + + // add a data-title attribute used for responsiveness + element.setAttribute('data-title', this.column.label); + // call the specialized render method return this.render(element, value); }; @@ -137,7 +158,7 @@ CheckboxCellRenderer.prototype.render = function(element, value) // if check box already created, just update its state if (element.firstChild) { element.firstChild.checked = value; return; } - + // create and initialize checkbox var htmlInput = document.createElement("input"); htmlInput.setAttribute("type", "checkbox"); @@ -159,8 +180,8 @@ CheckboxCellRenderer.prototype.render = function(element, value) element.appendChild(htmlInput); htmlInput.checked = value; htmlInput.disabled = (!this.column.editable || !this.editablegrid.isEditable(element.rowIndex, element.columnIndex)); - - element.className = "boolean"; + + EditableGrid.prototype.addClassName(element, "boolean"); }; /** @@ -202,7 +223,8 @@ DateCellRenderer.prototype.render = function(cell, value) { var date = this.editablegrid.checkDate(value); if (typeof date == "object") cell.innerHTML = date.formattedDate; - else cell.innerHTML = value; + else cell.innerHTML = value ? value : ""; + cell.style.whiteSpace = 'nowrap'; }; /** @@ -217,7 +239,7 @@ SortHeaderRenderer.prototype.render = function(cell, value) { if (!value) { if (this.cellRenderer) this.cellRenderer.render(cell, value); } else { - + // create a link that will sort (alternatively ascending/descending) var link = document.createElement("a"); cell.appendChild(link); @@ -227,42 +249,41 @@ SortHeaderRenderer.prototype.render = function(cell, value) link.editablegrid = this.editablegrid; link.renderer = this; link.onclick = function() { - var grid = this.editablegrid; - var cols = grid.tHead.rows[0].cells; - var clearPrevious = -1; - var backOnFirstPage = false; - - if (grid.sortedColumnName != this.columnName) { - clearPrevious = grid.sortedColumnName; - grid.sortedColumnName = this.columnName; - grid.sortDescending = false; - backOnFirstPage = true; - } - else { - if (!grid.sortDescending) grid.sortDescending = true; - else { - clearPrevious = grid.sortedColumnName; - grid.sortedColumnName = -1; - grid.sortDescending = false; + var cols = this.editablegrid.tHead.rows[0].cells; + var clearPrevious = -1; + var backOnFirstPage = false; + + if (this.editablegrid.sortedColumnName != this.columnName) { + clearPrevious = this.editablegrid.sortedColumnName; + this.editablegrid.sortedColumnName = this.columnName; + this.editablegrid.sortDescending = false; backOnFirstPage = true; } - } - - // render header for previous sort column (not needed anymore since the grid is now fully refreshed after a sort - cf. possible pagination) - // var j = getColumnIndex(clearPrevious); - // if (j >= 0) columns[j].headerRenderer._render(-1, j, cols[j], columns[j].label); - - grid.sort(grid.sortedColumnName, grid.sortDescending, backOnFirstPage); - - // render header for new sort column (not needed anymore since the grid is now fully refreshed after a sort - cf. possible pagination) - // var j = getColumnIndex(sortedColumnName); - // if (j >= 0) columns[j].headerRenderer._render(-1, j, cols[j], columns[j].label); + else { + if (!this.editablegrid.sortDescending) this.editablegrid.sortDescending = true; + else { + clearPrevious = this.editablegrid.sortedColumnName; + this.editablegrid.sortedColumnName = -1; + this.editablegrid.sortDescending = false; + backOnFirstPage = true; + } + } + + // render header for previous sort column (not needed anymore since the grid is now fully refreshed after a sort - cf. possible pagination) + // var j = getColumnIndex(clearPrevious); + // if (j >= 0) columns[j].headerRenderer._render(-1, j, cols[j], columns[j].label); + + this.editablegrid.sort(this.editablegrid.sortedColumnName, this.editablegrid.sortDescending, backOnFirstPage); + + // render header for new sort column (not needed anymore since the grid is now fully refreshed after a sort - cf. possible pagination) + // var j = getColumnIndex(sortedColumnName); + // if (j >= 0) columns[j].headerRenderer._render(-1, j, cols[j], columns[j].label); }; // add an arrow to indicate if sort is ascending or descending if (this.editablegrid.sortedColumnName == this.columnName) { cell.appendChild(document.createTextNode("\u00a0")); - cell.appendChild(this.editablegrid.sortDescending ? this.editablegrid.sortDownImage: this.editablegrid.sortUpImage); + cell.appendChild(this.editablegrid.sortDescending ? this.editablegrid.sortDownElement: this.editablegrid.sortUpElement); } // call user renderer if any diff --git a/static/js/editablegrid/editablegrid_utils.js b/static/js/editablegrid/editablegrid_utils.js index ebdece87..16d4f2a6 100644 --- a/static/js/editablegrid/editablegrid_utils.js +++ b/static/js/editablegrid/editablegrid_utils.js @@ -1,3 +1,18 @@ +EditableGrid.prototype._convertOptions = function(optionValues) +{ + // option values should be an *ordered* array of value/label pairs, but to stay compatible with existing enum providers + if (optionValues !== null && (!(optionValues instanceof Array)) && typeof optionValues == 'object') { + var _converted = []; + for (var value in optionValues) { + if (typeof optionValues[value] == 'object') _converted.push({ label : value, values: this._convertOptions(optionValues[value])}); // group + else _converted.push({ value : value, label: optionValues[value]}); + } + optionValues = _converted; + } + + return optionValues; +}; + EditableGrid.prototype.setCookie = function(c_name, value, exdays) { var exdate = new Date(); @@ -22,7 +37,7 @@ EditableGrid.prototype.getCookie = function(c_name) EditableGrid.prototype.has_local_storage = function() { try { return 'localStorage' in window && window['localStorage'] !== null; } catch(e) { return false; } -} +}; EditableGrid.prototype._localset = function(key, value) { @@ -30,15 +45,22 @@ EditableGrid.prototype._localset = function(key, value) else this.setCookie(key, value, null); }; +EditableGrid.prototype._localunset = function(key) +{ + if (this.has_local_storage()) localStorage.removeItem(key); + else this.setCookie(key, null, null); +}; + EditableGrid.prototype._localget = function(key) { if (this.has_local_storage()) return localStorage.getItem(key); return this.getCookie(key); }; -EditableGrid.prototype._localisset = function(key, value) +EditableGrid.prototype._localisset = function(key) { - return this._localget(key, value) !== null; + if (this.has_local_storage()) return localStorage.getItem(key) !== null && localStorage.getItem(key) != 'undefined'; + return this.getCookie(key) !== null; }; EditableGrid.prototype.localset = function(key, value) @@ -46,14 +68,19 @@ EditableGrid.prototype.localset = function(key, value) if (this.enableStore) return this._localset(this.name + '_' + key, value); }; +EditableGrid.prototype.localunset = function(key) +{ + if (this.enableStore) return this._localunset(this.name + '_' + key, value); +}; + EditableGrid.prototype.localget = function(key) { return this.enableStore ? this._localget(this.name + '_' + key) : null; }; -EditableGrid.prototype.localisset = function(key, value) +EditableGrid.prototype.localisset = function(key) { - return this.localget(key, value) !== null; + return this.enableStore ? this._localget(this.name + '_' + key) !== null : false; }; EditableGrid.prototype.unsort = function(a,b) @@ -64,10 +91,24 @@ EditableGrid.prototype.unsort = function(a,b) return aa-bb; }; +/** + * returns a sort function which further sorts according to the original index + * this ensures the sort will always be stable + * used to sort a tree where only the first level is actually sorted + */ +EditableGrid.prototype.sort_stable = function(sort_function, descending) +{ + return function (a, b) { + var sort = descending ? sort_function(b, a) : sort_function(a, b); + if (sort != 0) return sort; + return EditableGrid.prototype.unsort(a, b); + }; +}; + EditableGrid.prototype.sort_numeric = function(a,b) { - aa = isNaN(a[0]) ? 0 : parseFloat(a[0]); - bb = isNaN(b[0]) ? 0 : parseFloat(b[0]); + aa = isNaN(parseFloat(a[0])) ? 0 : parseFloat(a[0]); + bb = isNaN(parseFloat(b[0])) ? 0 : parseFloat(b[0]); return aa-bb; }; @@ -80,6 +121,9 @@ EditableGrid.prototype.sort_boolean = function(a,b) EditableGrid.prototype.sort_alpha = function(a,b) { + if (!a[0] && !b[0]) return 0; + if (a[0] && !b[0]) return 1; + if (!a[0] && b[0]) return -1; if (a[0].toLowerCase()==b[0].toLowerCase()) return 0; return a[0].toLowerCase().localeCompare(b[0].toLowerCase()); }; @@ -200,7 +244,7 @@ EditableGrid.prototype.detectDir = function() var e = document.getElementsByTagName('base'); for (var i=0; i 0 && (element.className == className || new RegExp("(^|\\s)" + className + "(\\s|$)").test(element.className))); }; +EditableGrid.prototype.hasClassName = function(element, className) { return (element.className.length > 0 && (element.className == className || new RegExp("(^|\\s)" + className.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&") + "(\\s|$)").test(element.className))); }; EditableGrid.prototype.addClassName = function(element, className) { if (!this.hasClassName(element, className)) element.className += (element.className ? ' ' : '') + className; }; EditableGrid.prototype.removeClassName = function(element, className) { element.className = this.strip(element.className.replace(new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ')); }; @@ -243,29 +289,30 @@ EditableGrid.prototype.removeClassName = function(element, className) { element. * @private */ String.prototype.trim = function() { return (this.replace(/^[\s\xA0]+/, "").replace(/[\s\xA0]+$/, "")); }; +String.prototype.contains = function(str) { return (this.match(str)==str); }; String.prototype.startsWith = function(str) { return (this.match("^"+str)==str); }; String.prototype.endsWith = function(str) { return (this.match(str+"$")==str); }; - -// Accepted formats: (for EU just switch month and day) -// -// mm-dd-yyyy -// mm/dd/yyyy -// mm.dd.yyyy -// mm dd yyyy -// mmm dd yyyy -// mmddyyyy -// -// m-d-yyyy -// m/d/yyyy -// m.d.yyyy, -// m d yyyy -// mmm d yyyy -// -// // m-d-yy -// // m/d/yy -// // m.d.yy -// // m d yy, -// // mmm d yy (yy is 20yy) + +//Accepted formats: (for EU just switch month and day) + +//mm-dd-yyyy +//mm/dd/yyyy +//mm.dd.yyyy +//mm dd yyyy +//mmm dd yyyy +//mmddyyyy + +//m-d-yyyy +//m/d/yyyy +//m.d.yyyy, +//m d yyyy +//mmm d yyyy + +////m-d-yy +////m/d/yy +////m.d.yy +////m d yy, +////mmm d yy (yy is 20yy) /** * Checks validity of a date string @@ -275,8 +322,7 @@ EditableGrid.prototype.checkDate = function(strDate, strDatestyle) { strDatestyle = strDatestyle || this.dateFormat; strDatestyle = strDatestyle || "EU"; - - var strDate; + var strDateArray; var strDay; var strMonth; @@ -288,10 +334,10 @@ EditableGrid.prototype.checkDate = function(strDate, strDatestyle) var strSeparatorArray = new Array("-"," ","/","."); var intElementNr; var err = 0; - + var strMonthArray = this.shortMonthNames; strMonthArray = strMonthArray || ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; - + if (!strDate || strDate.length < 1) return 0; for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) { @@ -306,7 +352,7 @@ EditableGrid.prototype.checkDate = function(strDate, strDatestyle) booFound = true; } } - + if (booFound == false) { if (strDate.length <= 5) return 1; strDay = strDate.substr(0, 2); @@ -322,7 +368,7 @@ EditableGrid.prototype.checkDate = function(strDate, strDatestyle) strDay = strMonth; strMonth = strTemp; } - + // get and check day intday = parseInt(strDay, 10); if (isNaN(intday)) return 2; @@ -347,7 +393,7 @@ EditableGrid.prototype.checkDate = function(strDate, strDatestyle) if (intYear < 70) { intYear = 2000 + intYear; strYear = '' + intYear; } // 70 become 1970, 69 becomes 1969, as with PHP's date_parse_from_format if (intYear < 100) { intYear = 1900 + intYear; strYear = '' + intYear; } if (intYear < 1900 || intYear > 2100) return 11; - + // check day in month if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) return 6; if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) return 7; @@ -372,7 +418,7 @@ function LeapYear(intYear) return false; } -// See RFC3986 +//See RFC3986 URI = function(uri) { this.scheme = null; @@ -479,251 +525,262 @@ URI = function(uri) }; function get_html_translation_table (table, quote_style) { - // http://kevin.vanzonneveld.net - // + original by: Philip Peterson - // + revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) - // + bugfixed by: noname - // + bugfixed by: Alex - // + bugfixed by: Marco - // + bugfixed by: madipta - // + improved by: KELAN - // + improved by: Brett Zamir (http://brett-zamir.me) - // + bugfixed by: Brett Zamir (http://brett-zamir.me) - // + input by: Frank Forte - // + bugfixed by: T.Wild - // + input by: Ratheous - // % note: It has been decided that we're not going to add global - // % note: dependencies to php.js, meaning the constants are not - // % note: real constants, but strings instead. Integers are also supported if someone - // % note: chooses to create the constants themselves. - // * example 1: get_html_translation_table('HTML_SPECIALCHARS'); - // * returns 1: {'"': '"', '&': '&', '<': '<', '>': '>'} - - var entities = {}, hash_map = {}, decimal = 0, symbol = ''; - var constMappingTable = {}, constMappingQuoteStyle = {}; - var useTable = {}, useQuoteStyle = {}; - - // Translate arguments - constMappingTable[0] = 'HTML_SPECIALCHARS'; - constMappingTable[1] = 'HTML_ENTITIES'; - constMappingQuoteStyle[0] = 'ENT_NOQUOTES'; - constMappingQuoteStyle[2] = 'ENT_COMPAT'; - constMappingQuoteStyle[3] = 'ENT_QUOTES'; - - useTable = !isNaN(table) ? constMappingTable[table] : table ? table.toUpperCase() : 'HTML_SPECIALCHARS'; - useQuoteStyle = !isNaN(quote_style) ? constMappingQuoteStyle[quote_style] : quote_style ? quote_style.toUpperCase() : 'ENT_COMPAT'; - - if (useTable !== 'HTML_SPECIALCHARS' && useTable !== 'HTML_ENTITIES') { - throw new Error("Table: "+useTable+' not supported'); - // return false; - } - - entities['38'] = '&'; - if (useTable === 'HTML_ENTITIES') { - entities['160'] = ' '; - entities['161'] = '¡'; - entities['162'] = '¢'; - entities['163'] = '£'; - entities['164'] = '¤'; - entities['165'] = '¥'; - entities['166'] = '¦'; - entities['167'] = '§'; - entities['168'] = '¨'; - entities['169'] = '©'; - entities['170'] = 'ª'; - entities['171'] = '«'; - entities['172'] = '¬'; - entities['173'] = '­'; - entities['174'] = '®'; - entities['175'] = '¯'; - entities['176'] = '°'; - entities['177'] = '±'; - entities['178'] = '²'; - entities['179'] = '³'; - entities['180'] = '´'; - entities['181'] = 'µ'; - entities['182'] = '¶'; - entities['183'] = '·'; - entities['184'] = '¸'; - entities['185'] = '¹'; - entities['186'] = 'º'; - entities['187'] = '»'; - entities['188'] = '¼'; - entities['189'] = '½'; - entities['190'] = '¾'; - entities['191'] = '¿'; - entities['192'] = 'À'; - entities['193'] = 'Á'; - entities['194'] = 'Â'; - entities['195'] = 'Ã'; - entities['196'] = 'Ä'; - entities['197'] = 'Å'; - entities['198'] = 'Æ'; - entities['199'] = 'Ç'; - entities['200'] = 'È'; - entities['201'] = 'É'; - entities['202'] = 'Ê'; - entities['203'] = 'Ë'; - entities['204'] = 'Ì'; - entities['205'] = 'Í'; - entities['206'] = 'Î'; - entities['207'] = 'Ï'; - entities['208'] = 'Ð'; - entities['209'] = 'Ñ'; - entities['210'] = 'Ò'; - entities['211'] = 'Ó'; - entities['212'] = 'Ô'; - entities['213'] = 'Õ'; - entities['214'] = 'Ö'; - entities['215'] = '×'; - entities['216'] = 'Ø'; - entities['217'] = 'Ù'; - entities['218'] = 'Ú'; - entities['219'] = 'Û'; - entities['220'] = 'Ü'; - entities['221'] = 'Ý'; - entities['222'] = 'Þ'; - entities['223'] = 'ß'; - entities['224'] = 'à'; - entities['225'] = 'á'; - entities['226'] = 'â'; - entities['227'] = 'ã'; - entities['228'] = 'ä'; - entities['229'] = 'å'; - entities['230'] = 'æ'; - entities['231'] = 'ç'; - entities['232'] = 'è'; - entities['233'] = 'é'; - entities['234'] = 'ê'; - entities['235'] = 'ë'; - entities['236'] = 'ì'; - entities['237'] = 'í'; - entities['238'] = 'î'; - entities['239'] = 'ï'; - entities['240'] = 'ð'; - entities['241'] = 'ñ'; - entities['242'] = 'ò'; - entities['243'] = 'ó'; - entities['244'] = 'ô'; - entities['245'] = 'õ'; - entities['246'] = 'ö'; - entities['247'] = '÷'; - entities['248'] = 'ø'; - entities['249'] = 'ù'; - entities['250'] = 'ú'; - entities['251'] = 'û'; - entities['252'] = 'ü'; - entities['253'] = 'ý'; - entities['254'] = 'þ'; - entities['255'] = 'ÿ'; - } - - if (useQuoteStyle !== 'ENT_NOQUOTES') { - entities['34'] = '"'; - } - if (useQuoteStyle === 'ENT_QUOTES') { - entities['39'] = '''; - } - entities['60'] = '<'; - entities['62'] = '>'; - - - // ascii decimals to real symbols - for (decimal in entities) { - symbol = String.fromCharCode(decimal); - hash_map[symbol] = entities[decimal]; - } - - return hash_map; + // http://kevin.vanzonneveld.net + // + original by: Philip Peterson + // + revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) + // + bugfixed by: noname + // + bugfixed by: Alex + // + bugfixed by: Marco + // + bugfixed by: madipta + // + improved by: KELAN + // + improved by: Brett Zamir (http://brett-zamir.me) + // + bugfixed by: Brett Zamir (http://brett-zamir.me) + // + input by: Frank Forte + // + bugfixed by: T.Wild + // + input by: Ratheous + // % note: It has been decided that we're not going to add global + // % note: dependencies to php.js, meaning the constants are not + // % note: real constants, but strings instead. Integers are also supported if someone + // % note: chooses to create the constants themselves. + // * example 1: get_html_translation_table('HTML_SPECIALCHARS'); + // * returns 1: {'"': '"', '&': '&', '<': '<', '>': '>'} + + var entities = {}, hash_map = {}, decimal = 0, symbol = ''; + var constMappingTable = {}, constMappingQuoteStyle = {}; + var useTable = {}, useQuoteStyle = {}; + + // Translate arguments + constMappingTable[0] = 'HTML_SPECIALCHARS'; + constMappingTable[1] = 'HTML_ENTITIES'; + constMappingQuoteStyle[0] = 'ENT_NOQUOTES'; + constMappingQuoteStyle[2] = 'ENT_COMPAT'; + constMappingQuoteStyle[3] = 'ENT_QUOTES'; + + useTable = !isNaN(table) ? constMappingTable[table] : table ? table.toUpperCase() : 'HTML_SPECIALCHARS'; + useQuoteStyle = !isNaN(quote_style) ? constMappingQuoteStyle[quote_style] : quote_style ? quote_style.toUpperCase() : 'ENT_COMPAT'; + + if (useTable !== 'HTML_SPECIALCHARS' && useTable !== 'HTML_ENTITIES') { + throw new Error("Table: "+useTable+' not supported'); + // return false; + } + + if (useTable === 'HTML_ENTITIES') { + entities['160'] = ' '; + entities['161'] = '¡'; + entities['162'] = '¢'; + entities['163'] = '£'; + entities['164'] = '¤'; + entities['165'] = '¥'; + entities['166'] = '¦'; + entities['167'] = '§'; + entities['168'] = '¨'; + entities['169'] = '©'; + entities['170'] = 'ª'; + entities['171'] = '«'; + entities['172'] = '¬'; + entities['173'] = '­'; + entities['174'] = '®'; + entities['175'] = '¯'; + entities['176'] = '°'; + entities['177'] = '±'; + entities['178'] = '²'; + entities['179'] = '³'; + entities['180'] = '´'; + entities['181'] = 'µ'; + entities['182'] = '¶'; + entities['183'] = '·'; + entities['184'] = '¸'; + entities['185'] = '¹'; + entities['186'] = 'º'; + entities['187'] = '»'; + entities['188'] = '¼'; + entities['189'] = '½'; + entities['190'] = '¾'; + entities['191'] = '¿'; + entities['192'] = 'À'; + entities['193'] = 'Á'; + entities['194'] = 'Â'; + entities['195'] = 'Ã'; + entities['196'] = 'Ä'; + entities['197'] = 'Å'; + entities['198'] = 'Æ'; + entities['199'] = 'Ç'; + entities['200'] = 'È'; + entities['201'] = 'É'; + entities['202'] = 'Ê'; + entities['203'] = 'Ë'; + entities['204'] = 'Ì'; + entities['205'] = 'Í'; + entities['206'] = 'Î'; + entities['207'] = 'Ï'; + entities['208'] = 'Ð'; + entities['209'] = 'Ñ'; + entities['210'] = 'Ò'; + entities['211'] = 'Ó'; + entities['212'] = 'Ô'; + entities['213'] = 'Õ'; + entities['214'] = 'Ö'; + entities['215'] = '×'; + entities['216'] = 'Ø'; + entities['217'] = 'Ù'; + entities['218'] = 'Ú'; + entities['219'] = 'Û'; + entities['220'] = 'Ü'; + entities['221'] = 'Ý'; + entities['222'] = 'Þ'; + entities['223'] = 'ß'; + entities['224'] = 'à'; + entities['225'] = 'á'; + entities['226'] = 'â'; + entities['227'] = 'ã'; + entities['228'] = 'ä'; + entities['229'] = 'å'; + entities['230'] = 'æ'; + entities['231'] = 'ç'; + entities['232'] = 'è'; + entities['233'] = 'é'; + entities['234'] = 'ê'; + entities['235'] = 'ë'; + entities['236'] = 'ì'; + entities['237'] = 'í'; + entities['238'] = 'î'; + entities['239'] = 'ï'; + entities['240'] = 'ð'; + entities['241'] = 'ñ'; + entities['242'] = 'ò'; + entities['243'] = 'ó'; + entities['244'] = 'ô'; + entities['245'] = 'õ'; + entities['246'] = 'ö'; + entities['247'] = '÷'; + entities['248'] = 'ø'; + entities['249'] = 'ù'; + entities['250'] = 'ú'; + entities['251'] = 'û'; + entities['252'] = 'ü'; + entities['253'] = 'ý'; + entities['254'] = 'þ'; + entities['255'] = 'ÿ'; + } + + if (useQuoteStyle !== 'ENT_NOQUOTES') { + entities['34'] = '"'; + } + if (useQuoteStyle === 'ENT_QUOTES') { + entities['39'] = '''; + } + entities['60'] = '<'; + entities['62'] = '>'; + + + // ascii decimals to real symbols + for (decimal in entities) { + symbol = String.fromCharCode(decimal); + hash_map[symbol] = entities[decimal]; + } + + return hash_map; +} + +function html_entity_decode(string, quote_style) +{ + var hash_map = {}, symbol = '', tmp_str = ''; + tmp_str = string.toString(); + if (false === (hash_map = get_html_translation_table('HTML_ENTITIES', quote_style))) return false; + hash_map["'"] = '''; + for (symbol in hash_map) tmp_str = tmp_str.split(hash_map[symbol]).join(symbol); + return tmp_str; } function htmlentities(string, quote_style) { - var hash_map = {}, symbol = '', tmp_str = ''; - tmp_str = string.toString(); - if (false === (hash_map = this.get_html_translation_table('HTML_ENTITIES', quote_style))) return false; - hash_map["'"] = '''; - for (symbol in hash_map) tmp_str = tmp_str.split(symbol).join(hash_map[symbol]); - return tmp_str; + var hash_map = {}, symbol = '', tmp_str = ''; + tmp_str = string.toString(); + if (false === (hash_map = get_html_translation_table('HTML_ENTITIES', quote_style))) return false; + tmp_str = tmp_str.split('&').join('&'); // replace & first, otherwise & in htlm codes will be replaced too! + hash_map["'"] = '''; + for (symbol in hash_map) tmp_str = tmp_str.split(symbol).join(hash_map[symbol]); + return tmp_str; } function htmlspecialchars(string, quote_style) { - var hash_map = {}, symbol = '', tmp_str = ''; - tmp_str = string.toString(); - if (false === (hash_map = this.get_html_translation_table('HTML_SPECIALCHARS', quote_style))) return false; - for (symbol in hash_map) tmp_str = tmp_str.split(symbol).join(hash_map[symbol]); - return tmp_str; + var hash_map = {}, symbol = '', tmp_str = ''; + tmp_str = string.toString(); + if (false === (hash_map = get_html_translation_table('HTML_SPECIALCHARS', quote_style))) return false; + tmp_str = tmp_str.split('&').join('&'); // replace & first, otherwise & in htlm codes will be replaced too! + for (symbol in hash_map) tmp_str = tmp_str.split(symbol).join(hash_map[symbol]); + return tmp_str; } function number_format (number, decimals, dec_point, thousands_sep) { - // http://kevin.vanzonneveld.net - // + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com) - // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) - // + bugfix by: Michael White (http://getsprink.com) - // + bugfix by: Benjamin Lupton - // + bugfix by: Allan Jensen (http://www.winternet.no) - // + revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com) - // + bugfix by: Howard Yeend - // + revised by: Luke Smith (http://lucassmith.name) - // + bugfix by: Diogo Resende - // + bugfix by: Rival - // + input by: Kheang Hok Chin (http://www.distantia.ca/) - // + improved by: davook - // + improved by: Brett Zamir (http://brett-zamir.me) - // + input by: Jay Klehr - // + improved by: Brett Zamir (http://brett-zamir.me) - // + input by: Amir Habibi (http://www.residence-mixte.com/) - // + bugfix by: Brett Zamir (http://brett-zamir.me) - // + improved by: Theriault - // + input by: Amirouche - // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) - // * example 1: number_format(1234.56); - // * returns 1: '1,235' - // * example 2: number_format(1234.56, 2, ',', ' '); - // * returns 2: '1 234,56' - // * example 3: number_format(1234.5678, 2, '.', ''); - // * returns 3: '1234.57' - // * example 4: number_format(67, 2, ',', '.'); - // * returns 4: '67,00' - // * example 5: number_format(1000); - // * returns 5: '1,000' - // * example 6: number_format(67.311, 2); - // * returns 6: '67.31' - // * example 7: number_format(1000.55, 1); - // * returns 7: '1,000.6' - // * example 8: number_format(67000, 5, ',', '.'); - // * returns 8: '67.000,00000' - // * example 9: number_format(0.9, 0); - // * returns 9: '1' - // * example 10: number_format('1.20', 2); - // * returns 10: '1.20' - // * example 11: number_format('1.20', 4); - // * returns 11: '1.2000' - // * example 12: number_format('1.2000', 3); - // * returns 12: '1.200' - // * example 13: number_format('1 000,50', 2, '.', ' '); - // * returns 13: '100 050.00' - // Strip all characters but numerical ones. - number = (number + '').replace(/[^0-9+\-Ee.]/g, ''); - var n = !isFinite(+number) ? 0 : +number, - prec = !isFinite(+decimals) ? 0 : /*Math.abs(*/decimals/*)*/, - sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep, - dec = (typeof dec_point === 'undefined') ? '.' : dec_point, - s = '', - toFixedFix = function (n, prec) { - var k = Math.pow(10, prec); - return '' + Math.round(n * k) / k; - }; - // Fix for IE parseFloat(0.55).toFixed(0) = 0; - s = (prec < 0 ? ('' + n) : (prec ? toFixedFix(n, prec) : '' + Math.round(n))).split('.'); - if (s[0].length > 3) { - s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep); - } - if ((s[1] || '').length < prec) { - s[1] = s[1] || ''; - s[1] += new Array(prec - s[1].length + 1).join('0'); - } - return s.join(dec); + // http://kevin.vanzonneveld.net + // + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com) + // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) + // + bugfix by: Michael White (http://getsprink.com) + // + bugfix by: Benjamin Lupton + // + bugfix by: Allan Jensen (http://www.winternet.no) + // + revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com) + // + bugfix by: Howard Yeend + // + revised by: Luke Smith (http://lucassmith.name) + // + bugfix by: Diogo Resende + // + bugfix by: Rival + // + input by: Kheang Hok Chin (http://www.distantia.ca/) + // + improved by: davook + // + improved by: Brett Zamir (http://brett-zamir.me) + // + input by: Jay Klehr + // + improved by: Brett Zamir (http://brett-zamir.me) + // + input by: Amir Habibi (http://www.residence-mixte.com/) + // + bugfix by: Brett Zamir (http://brett-zamir.me) + // + improved by: Theriault + // + input by: Amirouche + // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) + // * example 1: number_format(1234.56); + // * returns 1: '1,235' + // * example 2: number_format(1234.56, 2, ',', ' '); + // * returns 2: '1 234,56' + // * example 3: number_format(1234.5678, 2, '.', ''); + // * returns 3: '1234.57' + // * example 4: number_format(67, 2, ',', '.'); + // * returns 4: '67,00' + // * example 5: number_format(1000); + // * returns 5: '1,000' + // * example 6: number_format(67.311, 2); + // * returns 6: '67.31' + // * example 7: number_format(1000.55, 1); + // * returns 7: '1,000.6' + // * example 8: number_format(67000, 5, ',', '.'); + // * returns 8: '67.000,00000' + // * example 9: number_format(0.9, 0); + // * returns 9: '1' + // * example 10: number_format('1.20', 2); + // * returns 10: '1.20' + // * example 11: number_format('1.20', 4); + // * returns 11: '1.2000' + // * example 12: number_format('1.2000', 3); + // * returns 12: '1.200' + // * example 13: number_format('1 000,50', 2, '.', ' '); + // * returns 13: '100 050.00' + // Strip all characters but numerical ones. + number = (number + '').replace(/[^0-9+\-Ee.]/g, ''); + var n = !isFinite(+number) ? 0 : +number, + prec = !isFinite(+decimals) ? 0 : /*Math.abs(*/decimals/*)*/, + sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep, + dec = (typeof dec_point === 'undefined') ? '.' : dec_point, + s = '', + toFixedFix = function (n, prec) { + var k = Math.pow(10, prec); + return '' + Math.round(n * k) / k; + }; + // Fix for IE parseFloat(0.55).toFixed(0) = 0; + s = (prec < 0 ? ('' + n) : (prec ? toFixedFix(n, prec) : '' + Math.round(n))).split('.'); + if (s[0].length > 3) { + s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep); + } + if ((s[1] || '').length < prec) { + s[1] = s[1] || ''; + s[1] += new Array(prec - s[1].length + 1).join('0'); + } + return s.join(dec); } diff --git a/static/js/fitlink.js b/static/js/fitlink.js deleted file mode 100644 index 66833d6a..00000000 --- a/static/js/fitlink.js +++ /dev/null @@ -1,818 +0,0 @@ -// all related globals are prefixed with "eveui_" to try to avoid collision -// for clarity and consistency: -// " are only used for html attribute values -// ' are used for javascript values -// ` used whenever interpolation is required -'use strict'; -// config stuff ( can be overridden in a script block or js file of your choice ) -var eveui_use_localstorage = eveui_use_localstorage || 4000000; -var eveui_preload_initial = eveui_preload_initial || 50; -var eveui_preload_interval = eveui_preload_interval || 10; -var eveui_mode = eveui_mode || 'multi_window'; // expand_all, expand, multi_window, modal -var eveui_allow_edit = eveui_allow_edit || false; -var eveui_fit_selector = eveui_fit_selector || '[href^="fitting:"],[data-dna]'; -var eveui_item_selector = eveui_item_selector || '[href^="item:"],[data-itemid]'; -var eveui_char_selector = eveui_char_selector || '[href^="char:"],[data-charid]'; -var eveui_urlify = eveui_urlify || function (dna) { - return 'https://o.smium.org/loadout/dna/' + encodeURI(dna); -}; -var eveui_imageserver = eveui_imageserver || function (image_ref) { - if (image_ref.startsWith('Character')) { - return 'https://imageserver.eveonline.com/' + encodeURI(image_ref) + '.jpg'; - } - return 'https://imageserver.eveonline.com/' + encodeURI(image_ref) + '.png'; -}; -/* icons from https://github.com/primer/octicons */ -var eveui_style = eveui_style || ''; -var eveui; -(function (eveui) { - mark('script start'); - // variables - var $ = jQuery; - var mouse_x = 0; - var mouse_y = 0; - var drag_element = null; - var drag_element_x = 0; - var drag_element_y = 0; - var current_zindex = 100; - var preload_timer; - var preload_quota = eveui_preload_initial; - var cache = {}; - var eve_version; - var localstorage_timer; - var localstorage_pending = {}; - var requests_pending = 0; - var itemselect_lastupdate = 0; - if (typeof (Storage) === 'undefined') { - // disable localstorage if unsupported/blocked/whatever - eveui_use_localstorage = -1; - } - // insert required DOM elements / styles - $('head').append(eveui_style); - // click handlers to create/close windows - $(document).on('click', '.eveui_window .eveui_close_icon', function (e) { - $(this).parent().remove(); - if ($('.eveui_window').length === 0) { - $('.eveui_modal_overlay').remove(); - } - }); - $(document).on('click', '.eveui_modal_overlay', function (e) { - $('.eveui_window').remove(); - $(this).remove(); - }); - $(document).on('click', eveui_fit_selector, function (e) { - e.preventDefault(); - preload_quota = eveui_preload_initial; - // hide window if it already exists - if (this.eveui_window && document.contains(this.eveui_window[0])) { - this.eveui_window.remove(); - return; - } - var dna = $(this).attr('data-dna') || this.href.substring(this.href.indexOf(':') + 1); - var eveui_name = $(this).attr('data-title') || $(this).text().trim(); - switch (eveui_mode) { - case 'expand': - case 'expand_all': - $(this).attr('data-eveui-expand', 1); - expand(); - break; - default: - this.eveui_window = fit_window(dna, eveui_name); - break; - } - }); - $(document).on('click', eveui_item_selector, function (e) { - e.preventDefault(); - // hide window if it already exists - if (this.eveui_window && document.contains(this.eveui_window[0])) { - this.eveui_window.remove(); - return; - } - var item_id = $(this).attr('data-itemid') || this.href.substring(this.href.indexOf(':') + 1); - // create loading placeholder - switch (eveui_mode) { - case 'expand': - case 'expand_all': - $(this).attr('data-eveui-expand', 1); - expand(); - break; - default: - this.eveui_window = item_window(item_id); - break; - } - }); - $(document).on('click', eveui_char_selector, function (e) { - e.preventDefault(); - // hide window if it already exists - if (this.eveui_window && document.contains(this.eveui_window[0])) { - this.eveui_window.remove(); - return; - } - var char_id = $(this).attr('data-charid') || this.href.substring(this.href.indexOf(':') + 1); - // create loading placeholder - switch (eveui_mode) { - case 'expand': - case 'expand_all': - $(this).attr('data-eveui-expand', 1); - expand(); - break; - default: - this.eveui_window = char_window(char_id); - break; - } - }); - // info buttons, copy buttons, etc - $(document).on('click', '.eveui_minus_icon', function (e) { - e.preventDefault(); - var item_id = $(this).closest('[data-eveui-itemid]').attr('data-eveui-itemid'); - var dna = $(this).closest('[data-eveui-dna]').attr('data-eveui-dna'); - var re = new RegExp(':' + item_id + ';(\\d+)'); - var new_quantity = parseInt(dna.match(re)[1]) - 1; - if (new_quantity > 0) { - dna = dna.replace(re, ':' + item_id + ';' + new_quantity); - } - else { - dna = dna.replace(re, ''); - } - $(this).closest('[data-eveui-dna]').attr('data-eveui-dna', dna); - cache_fit(dna).done(function () { - var eveui_window = $(".eveui_window[data-eveui-dna=\"" + dna + "\"]"); - eveui_window.find('.eveui_content ').html(format_fit(dna)); - $(window).trigger('resize'); - }); - }); - $(document).on('click', '.eveui_plus_icon', function (e) { - e.preventDefault(); - var item_id = $(this).closest('[data-eveui-itemid]').attr('data-eveui-itemid'); - var dna = $(this).closest('[data-eveui-dna]').attr('data-eveui-dna'); - var re = new RegExp(":" + item_id + ";(\\d+)"); - var new_quantity = parseInt(dna.match(re)[1]) + 1; - if (new_quantity > 0) { - dna = dna.replace(re, ":" + item_id + ";" + new_quantity); - } - else { - dna = dna.replace(re, ''); - } - $(this).closest('[data-eveui-dna]').attr('data-eveui-dna', dna); - cache_fit(dna).done(function () { - var eveui_window = $(".eveui_window[data-eveui-dna=\"" + dna + "\"]"); - eveui_window.find('.eveui_content ').html(format_fit(dna)); - $(window).trigger('resize'); - }); - }); - $(document).on('click', '.eveui_edit_icon', function (e) { - e.preventDefault(); - $(this).closest('.eveui_content').addClass('eveui_edit'); - $(this).remove(); - }); - $(document).on('click', '.eveui_more_icon', function (e) { - e.preventDefault(); - var item_id = $(this).closest('[data-eveui-itemid]').attr('data-eveui-itemid'); - // hide window if it already exists - if (this.eveui_itemselect && document.contains(this.eveui_itemselect[0])) { - this.eveui_itemselect.remove(); - return; - } - $('.eveui_itemselect').remove(); - var eveui_itemselect = $(""); - eveui_itemselect.css('z-index', current_zindex++); - this.eveui_itemselect = eveui_itemselect; - $(this).closest('tr').find('.eveui_rowcontent').prepend(this.eveui_itemselect); - eveui_itemselect.find('input').focus(); - if (typeof (item_id) === 'undefined') { - return; - } - var request_timestamp = performance.now(); - // get market group id for selected item - cache_request('crest/market/types/' + item_id, "https://crest-tq.eveonline.com/market/types/" + item_id + "/").done(function () { - var data = cache['crest/market/types/' + item_id]; - var market_group = data.marketGroup.id_str; - // get items with the same market group - cache_request('crest/market/groups/' + market_group, "https://crest-tq.eveonline.com/market/types/?group=https://crest-tq.eveonline.com/market/groups/" + market_group + "/").done(function () { - if (request_timestamp > itemselect_lastupdate) { - itemselect_lastupdate = request_timestamp; - } - else { - return; - } - var data = cache['crest/market/groups/' + market_group]; - var datalist = $('.eveui_itemselect datalist'); - data.items.sort(function (a, b) { return a.type.name.localeCompare(b.type.name); }); - for (var i in data.items) { - datalist.append(""); - } - }); - }); - }); - $(document).on('input', '.eveui_itemselect input', function (e) { - var eveui_itemselect = $(this).closest('.eveui_itemselect'); - var input_str = $(this).val(); - if (input_str.slice(0, 1) === '(' && input_str.slice(-1) === ')') { - // numeric input is expected to mean selected item - input_str = input_str.slice(1, -1); - var item_id = $(this).closest('[data-eveui-itemid]').attr('data-eveui-itemid'); - var dna_1 = $(this).closest('[data-eveui-dna]').attr('data-eveui-dna'); - if (typeof (item_id) === 'undefined') { - // append new item - dna_1 = dna_1.slice(0, -2) + ":" + input_str + ";1::"; - } - else { - // replace existing item - var re = new RegExp("^" + item_id + ":"); - dna_1 = dna_1.replace(re, input_str + ":"); - re = new RegExp(":" + item_id + ";"); - dna_1 = dna_1.replace(re, ":" + input_str + ";"); - } - $(this).closest('[data-eveui-dna]').attr('data-eveui-dna', dna_1); - cache_fit(dna_1).done(function () { - var eveui_window = $(".eveui_window[data-eveui-dna=\"" + dna_1 + "\"]"); - eveui_window.find('.eveui_content ').html(format_fit(dna_1)); - $(window).trigger('resize'); - }); - $('.eveui_itemselect').remove(); - } - else { - // search for matching items - if (input_str.length < 3) { - return; - } - var request_timestamp_1 = performance.now(); - // get item ids that match input - $.ajax({ - url: "https://esi.tech.ccp.is/v1/search/", - cache: true, - data: { - search: $(this).val(), - categories: 'inventorytype' - } - }).done(function (data) { - if (typeof (data.inventorytype) === 'undefined') { - return; - } - var arg = { - ids: data.inventorytype.slice(0, 50) - }; - // get names for required item ids - $.ajax({ - url: "https://esi.tech.ccp.is/v1/universe/names/", - cache: true, - method: 'POST', - contentType: 'application/json', - data: JSON.stringify(arg) - }).done(function (data) { - if (request_timestamp_1 > itemselect_lastupdate) { - itemselect_lastupdate = request_timestamp_1; - } - else { - return; - } - var datalist = eveui_itemselect.find('datalist'); - data.sort(function (a, b) { return a.name.localeCompare(b.name); }); - datalist.empty(); - for (var i in data) { - datalist.append(""); - } - }); - }); - } - }); - // close itemselect window on any outside click - $(document).on('click', function (e) { - if ($(e.target).closest('.eveui_itemselect,.eveui_more_icon').length > 0) { - return; - } - $('.eveui_itemselect').remove(); - }); - $(document).on('click', '.eveui_copy_icon', function (e) { - clipboard_copy($(this).closest('.eveui_content')); - }); - // custom window drag handlers - $(document).on('mousedown', '.eveui_window', function (e) { - $(this).css('z-index', current_zindex++); - ; - }); - $(document).on('mousedown', '.eveui_title', function (e) { - e.preventDefault(); - drag_element = $(this).parent(); - drag_element_x = mouse_x - drag_element.position().left; - drag_element_y = mouse_y - drag_element.position().top; - drag_element.css('z-index', current_zindex++); - ; - }); - $(document).on('mousemove', function (e) { - mouse_x = e.clientX; - mouse_y = e.clientY; - if (drag_element === null) { - return; - } - drag_element.css('left', mouse_x - drag_element_x); - drag_element.css('top', mouse_y - drag_element_y); - }); - $(document).on('mouseup', function (e) { - drag_element = null; - }); - $(window).on('resize', function (e) { - // resize handler to try to keep windows onscreen - $('.eveui_window').each(function () { - var eveui_window = $(this); - var eveui_content = eveui_window.find('.eveui_content'); - if (eveui_content.height() > window.innerHeight - 50) { - eveui_window.css('height', window.innerHeight - 50); - } - else { - eveui_window.css('height', ''); - } - if (eveui_content.width() > window.innerWidth - 40) { - eveui_window.css('width', window.innerWidth - 40); - } - else { - eveui_window.css('width', ''); - } - if (eveui_window[0].getBoundingClientRect().bottom > window.innerHeight) { - eveui_window.css('top', window.innerHeight - eveui_window.height() - 25); - } - if (eveui_window[0].getBoundingClientRect().right > window.innerWidth) { - eveui_window.css('left', window.innerWidth - eveui_window.width() - 10); - } - }); - if (eveui_mode === 'modal') { - var eveui_window = $('[data-eveui-modal]'); - eveui_window.css('top', window.innerHeight / 2 - eveui_window.height() / 2); - eveui_window.css('left', window.innerWidth / 2 - eveui_window.width() / 2); - } - }); - mark('event handlers set'); - function eve_version_query() { - mark('eve version request'); - $.ajax("https://crest-tq.eveonline.com/", { - dataType: 'json', - cache: true, - }).done(function (data) { - eve_version = data.serverVersion; - mark('eve version response ' + eve_version); - if (eveui_use_localstorage > 0 && typeof (localStorage['eveui_cache']) !== 'undefined') { - // load localstorage cache if applicable - var localstorage_cache_1 = JSON.parse(localStorage.getItem('eveui_cache')); - $.each(localstorage_cache_1, function (k, v) { - if (k.startsWith('EVE')) { - // version key - if (k === eve_version) { - $.extend(cache, v); - } - else { - delete localstorage_cache_1[k]; - } - } - else { - // timestamp key - if (Number(k) > Date.now()) { - $.extend(cache, v); - } - else { - delete localstorage_cache_1[k]; - } - } - }); - localStorage.setItem('eveui_cache', JSON.stringify(localstorage_cache_1)); - mark("localstorage cache loaded " + Object.keys(cache).length + " entries"); - } - $(document).ready(function () { - mark('expanding fits'); - expand(); - }); - // lazy preload timer - preload_timer = setTimeout(lazy_preload, eveui_preload_interval); - mark('preload timer set'); - }).fail(function (xhr) { - mark('eve version request failed'); - setTimeout(eve_version_query, 10000); - }); - } - eve_version_query(); - function new_window(title) { - if (title === void 0) { title = ' '; } - var eveui_window = $("
    " + title + "
    Loading..."); - if (eveui_mode === 'modal' && $('.eveui_modal_overlay').length === 0) { - $('body').append("
    "); - eveui_window.attr('data-eveui-modal', 1); - } - eveui_window.css('z-index', current_zindex++); - eveui_window.css('left', mouse_x + 10); - eveui_window.css('top', mouse_y - 10); - return eveui_window; - } - function mark(mark) { - // log script time with annotation for performance metric - console.log('eveui: ' + performance.now().toFixed(3) + ' ' + mark); - } - function format_fit(dna, eveui_name) { - // generates html for a fit display - var high_slots = {}; - var med_slots = {}; - var low_slots = {}; - var rig_slots = {}; - var subsystem_slots = {}; - var other_slots = {}; - var items = dna.split(':'); - // ship name and number of slots - var ship_id = parseInt(items.shift()); - var ship = cache['esi/universe/types/' + ship_id]; - ship.hiSlots = 0; - ship.medSlots = 0; - ship.lowSlots = 0; - for (var i in ship.dogma_attributes) { - var attr = ship.dogma_attributes[i]; - if (attr.attribute_id === 14 ) { // 'hiSlots' - ship['hiSlots'] = attr.value; - } - else if (attr.attribute_id === 13 ) { // 'medSlots' - ship['medSlots'] = attr.value; - } - else if (attr.attribute_id === 12) { // 'lowSlots' - ship['lowSlots'] = attr.value; - } - else if (attr.attribute_id === 1137) { // 'rigSlots' - ship['rigSlots'] = attr.value; - } - else if (attr.attribute_id === 1367) { // 'maxSubSystems' - ship['maxSubSystems'] = attr.value; - } - } - // categorize items into slots - outer: for (var i in items) { - if (items[i].length === 0) { - continue; - } - var match = items[i].split(';'); - var item_id = match[0]; - var quantity = parseInt(match[1]); - var item = cache['esi/universe/types/' + item_id]; - for (var j in item.dogma_attributes) { - var attr = item.dogma_attributes[j]; - if (attr.attribute_id === 1374) { // 'hiSlotModifier' - ship.hiSlots += attr.value; - } - if (attr.attribute_id === 1375) { // 'medSlotModifier' - ship.medSlots += attr.value; - } - if (attr.attribute_id === 1376) { // 'lowSlotModifier' - ship.lowSlots += attr.value; - } - } - for (var j in item.dogma_effects) { - var effect = item.dogma_effects[j]; - if (effect.effect_id === 12) { // 'hiPower' - high_slots[item_id] = quantity; - continue outer; - } - else if (effect.effect_id === 13) { // 'medPower' - med_slots[item_id] = quantity; - continue outer; - } - else if (effect.effect_id === 11) { // 'loPower' - low_slots[item_id] = quantity; - continue outer; - } - else if (effect.effect_id === 2663) { // 'rigSlot' - rig_slots[item_id] = quantity; - continue outer; - } - else if (effect.effect_id === 3772) { // 'subSystem' - subsystem_slots[item_id] = quantity; - continue outer; - } - } - other_slots[item_id] = quantity; - } - function item_rows(fittings, slots_available) { - // generates table rows for listed slots - var html = ''; - var slots_used = 0; - for (var item_id in fittings) { - var item = cache['esi/universe/types/' + item_id]; - slots_used += fittings[item_id]; - if (slots_available) { - html += "" + (item.name + '
    ').repeat(fittings[item_id]); - } - else { - html += "" + item.name + " x" + fittings[item_id] + "
    "; - } - html += "" + fittings[item_id] + "
    " + item.name + "
    "; - } - if (typeof (slots_available) !== 'undefined') { - if (slots_available > slots_used) { - html += "" + (slots_available - slots_used) + "
    Empty
    "; - } - if (slots_used > slots_available) { - html += "" + (slots_available - slots_used) + "
    Excess
    "; - } - } - return html; - } - var html = "" + item_rows(high_slots, ship.hiSlots) + "
    " + (eveui_allow_edit ? '' : '') + "
     " + item_rows(med_slots, ship.medSlots) + "
     " + item_rows(low_slots, ship.lowSlots) + "
     " + item_rows(rig_slots, ship.rigSlots) + "
     " + item_rows(subsystem_slots, ship.maxSubSystems) + "
     " + item_rows(other_slots) + "
    "; - return html; - } - eveui.format_fit = format_fit; - function fit_window(dna, eveui_name) { - // creates and populates a fit window - var eveui_window = new_window('Fit'); - eveui_window.addClass('fit_window'); - eveui_window.attr('data-eveui-dna', dna); - $('body').append(eveui_window); - $(window).trigger('resize'); - // load required items and set callback to display - mark('fit window created'); - cache_fit(dna).done(function () { - eveui_window.find('.eveui_content ').html(format_fit(dna, eveui_name)); - $(window).trigger('resize'); - mark('fit window populated'); - }); - return eveui_window; - } - eveui.fit_window = fit_window; - function format_item(item_id) { - var item = cache['esi/universe/types/' + item_id]; - var html = "'; - html += '
    " + item.name; - for (var i in item.dogma_attributes) { - var attr = item.dogma_attributes[i]; - html += '
    ' + attr.attribute_id; // TODO: get names - html += '' + attr.value; - } - html += '
    '; - return html; - } - eveui.format_item = format_item; - function item_window(item_id) { - // creates and populates an item window - var eveui_window = new_window('Item'); - eveui_window.attr('data-eveui-itemid', item_id); - eveui_window.addClass('item_window'); - switch (eveui_mode) { - default: - $('body').append(eveui_window); - break; - } - mark('item window created'); - // load required items and set callback to display - https://esi.tech.ccp.is/latest/universe/types/29984 - cache_request('esi/universe/types/' + item_id, "https://esi.tech.ccp.is/latest/universe/types/" + item_id + "/?datasource=tranquility&language=en-us").done(function () { - eveui_window.find('.eveui_content').html(format_item(item_id)); - $(window).trigger('resize'); - mark('item window populated'); - }).fail(function () { - eveui_window.remove(); - }); - $(window).trigger('resize'); - return eveui_window; - } - eveui.item_window = item_window; - function format_char(char_id) { - var character = cache['crest/characters/' + char_id]; - var html = "
    " + character.name + "
    Member of " + character.corporation.name + "
    Bio:" + character.description.replace(/]+>/g, '') + "
    "; - return html; - } - eveui.format_char = format_char; - function char_window(char_id) { - var eveui_window = new_window('Character'); - eveui_window.attr('data-eveui-charid', char_id); - eveui_window.addClass('char_window'); - switch (eveui_mode) { - default: - $('body').append(eveui_window); - break; - } - mark('char window created'); - // load required chars and set callback to display - cache_request('crest/characters/' + char_id, "https://crest-tq.eveonline.com/characters/" + char_id + "/").done(function () { - eveui_window.find('.eveui_content').html(format_char(char_id)); - $(window).trigger('resize'); - mark('char window populated'); - }).fail(function () { - eveui_window.remove(); - }); - $(window).trigger('resize'); - return eveui_window; - } - eveui.char_window = char_window; - function expand() { - // expand any fits marked with a data-eveui-expand attribute ( or all, if expand_all mode ) - var expand_filter = '[data-eveui-expand]'; - if (eveui_mode === "expand_all") { - expand_filter = '*'; - } - $(eveui_fit_selector).filter(expand_filter).each(function () { - var selected_element = $(this); - if (selected_element.closest('.eveui_content').length > 0) { - // if element is part of eveui content already, don't expand, otherwise we might get a really fun infinite loop - return; - } - var dna = selected_element.attr('data-dna') || this.href.substring(this.href.indexOf(':') + 1); - cache_fit(dna).done(function () { - var eveui_name = $(this).text().trim(); - var eveui_content = $("" + format_fit(dna, eveui_name) + ""); - eveui_content.attr('data-eveui-dna', dna); - selected_element = selected_element.replaceWith(eveui_content); - mark('fit window expanded'); - }); - }); - $(eveui_item_selector).filter(expand_filter).each(function () { - var selected_element = $(this); - if (selected_element.closest('.eveui_content').length > 0) { - // if element is part of eveui content already, don't expand, otherwise we might get a really fun infinite loop - return; - } - var item_id = selected_element.attr('data-itemid') || this.href.substring(this.href.indexOf(':') + 1); - cache_request('esi/universe/types/' + item_id, "https://esi.tech.ccp.is/v2/universe/types/" + item_id + "/?datasource=tranquility&language=en-us").done(function () { - selected_element.replaceWith("" + format_item(item_id) + ""); - mark('item window expanded'); - }); - }); - $(eveui_char_selector).filter(expand_filter).each(function () { - var selected_element = $(this); - if (selected_element.closest('.eveui_content').length > 0) { - // if element is part of eveui content already, don't expand, otherwise we might get a really fun infinite loop - return; - } - var char_id = selected_element.attr('data-charid') || this.href.substring(this.href.indexOf(':') + 1); - cache_request('crest/characters/' + char_id, "https://crest-tq.eveonline.com/characters/" + char_id + "/").done(function () { - selected_element.replaceWith("" + format_char(char_id) + ""); - mark('char window expanded'); - }); - }); - } - eveui.expand = expand; - function lazy_preload() { - // preload timer function - preload_timer = setTimeout(lazy_preload, 5000); - if (requests_pending >= 10) { - return; - } - if (preload_quota > 0) { - $(eveui_fit_selector).not('[data-eveui-cached]').each(function (i) { - var elem = $(this); - var dna = elem.data('dna') || this.href.substring(this.href.indexOf(':') + 1); - var promise = cache_fit(dna); - // skip if already cached - if (promise.state() === 'resolved') { - elem.attr('data-eveui-cached', 1); - } - else { - preload_quota--; - promise.always(function () { - clearTimeout(preload_timer); - preload_timer = setTimeout(lazy_preload, eveui_preload_interval); - }); - return false; - } - }); - } - } - function cache_fit(dna) { - // caches all items required to process the specified fit - var pending = []; - var items = dna.split(':'); - for (var item in items) { - if (items[item].length === 0) { - continue; - } - var match = items[item].split(';'); - var item_id = match[0]; - pending.push(cache_request('esi/universe/types/' + item_id, "https://esi.tech.ccp.is/v2/universe/types/" + item_id + "/?datasource=tranquility&language=en-us")); - } - return $.when.apply(null, pending); - } - function cache_request(key, url) { - if (typeof (cache[key]) === 'object') { - if (typeof (cache[key].promise) === 'function') { - // item is pending, return the existing deferred object - return cache[key]; - } - else { - // if item is already cached, we can return a resolved promise - return $.Deferred().resolve(); - } - } - requests_pending++; - return cache[key] = $.ajax(url, { - dataType: 'json', - cache: true, - }).done(function (data) { - // store data in session cache - cache[key] = data; - // store data in localstorage where applicable - if (eveui_use_localstorage > 0) { - var version = void 0; - if (key.startsWith('esi/universe/types/')) { - // inventory/types key should be reliably cachable until such time as the version changes - version = eve_version; - } - if (typeof version === 'undefined') { - // default is to use the standard browser cache - return; - } - if (typeof (localstorage_pending[version]) !== 'object') { - localstorage_pending[version] = {}; - } - localstorage_pending[version][key] = data; - // timer to throttle localstorage updates - clearTimeout(localstorage_timer); - localstorage_timer = setTimeout(function () { - var localstorage_cache = JSON.parse(localStorage.getItem('eveui_cache')) || {}; - $.extend(true, localstorage_cache, localstorage_pending); - var localstorage_cache_json = JSON.stringify(localstorage_cache); - if (localstorage_cache_json.length > eveui_use_localstorage) { - mark('localstorage limit exceeded'); - return; - } - try { - localStorage.setItem('eveui_cache', localstorage_cache_json); - mark('localstorage updated ' + Object.keys(localstorage_pending).length); - } - catch (err) { - } - localstorage_pending = {}; - }, 5000); - } - }).fail(function (xhr) { - delete cache[key]; - }).always(function () { - requests_pending--; - }); - } - function clipboard_copy(element) { - // copy the contents of selected element to clipboard - // while excluding any elements with 'nocopy' class - // and including otherwise-invisible elements with 'copyonly' class - $('.nocopy').hide(); - $('.copyonly').show(); - var selection = window.getSelection(); - var range = document.createRange(); - if (element.find('.eveui_startcopy').length) { - range.setStart(element.find('.eveui_startcopy')[0], 0); - range.setEnd(element.find('.eveui_endcopy')[0], 0); - } - else { - range.selectNodeContents(element[0]); - } - selection.removeAllRanges(); - selection.addRange(range); - document.execCommand('copy'); - selection.removeAllRanges(); - $('.nocopy').show(); - $('.copyonly').hide(); - } - // additional shims for older browsers - /* from https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/repeat */ - if (!String.prototype.repeat) { - String.prototype.repeat = function (count) { - 'use strict'; - if (this == null) { - throw new TypeError('can\'t convert ' + this + ' to object'); - } - var str = '' + this; - count = +count; - if (count != count) { - count = 0; - } - if (count < 0) { - throw new RangeError('repeat count must be non-negative'); - } - if (count == Infinity) { - throw new RangeError('repeat count must be less than infinity'); - } - count = Math.floor(count); - if (str.length == 0 || count == 0) { - return ''; - } - // Ensuring count is a 31-bit integer allows us to heavily optimize the - // main part. But anyway, most current (August 2014) browsers can't handle - // strings 1 << 28 chars or longer, so: - if (str.length * count >= 1 << 28) { - throw new RangeError('repeat count must not overflow maximum string size'); - } - var rpt = ''; - for (;;) { - if ((count & 1) == 1) { - rpt += str; - } - count >>>= 1; - if (count == 0) { - break; - } - str += str; - } - // Could we try: - // return Array(count + 1).join(this); - return rpt; - }; - } - /* https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith */ - if (!String.prototype.startsWith) { - String.prototype.startsWith = function (searchString, position) { - position = position || 0; - return this.substr(position, searchString.length) === searchString; - }; - } - mark('script end'); -})(eveui || (eveui = {})); diff --git a/static/js/sse-dom.js b/static/js/sse-dom.js index cf9e5bee..81a8eafa 100644 --- a/static/js/sse-dom.js +++ b/static/js/sse-dom.js @@ -95,8 +95,9 @@ waitlist.sse_dom = (function () { sse.addEventListener("status-changed", statusChangedListener); function init() { + settings.can_manage = getMetaData('can-fleetcomp') === "True"; loadWaitlist(); - settings.can_manage = getMetaData('can-fleetcomp') === "True"; + $('body').tooltip({selector: '[data-toggle=tooltip]'}); } $(document).ready(init); diff --git a/static/js/themes/themes.js b/static/js/themes/themes.js index 02b3f624..0e8e51f7 100644 --- a/static/js/themes/themes.js +++ b/static/js/themes/themes.js @@ -10,11 +10,10 @@ waitlist.themes = (function() { 'id': 'theme-css', 'base_path': "/static/css/", 'setting_key_prefix': 'themes-', - 'def_type': 'local', - 'def_file': 'bootstrap_dark_purple_001.css', - 'def_integrity': null, - 'def_crossorigin': null - + 'def_type': 'remote', + 'def_file': 'https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css', + 'def_integrity': "sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ", + 'def_crossorigin': "anonymouse" }; // file_name = null == standard file function setTheme(file_name, type, integrity, crossorigin) { @@ -87,13 +86,16 @@ waitlist.themes = (function() { let type = localStorage.getItem(settings.setting_key_prefix+"type"); let integrity = localStorage.getItem(settings.setting_key_prefix+"integrity"); let crossorigin = localStorage.getItem(settings.setting_key_prefix+"crossorigin"); - document.addEventListener('DOMContentLoaded', function () { - setSelectionAfterPageReady(file); - }); if (file === null || file === "null") { // set the default theme + document.addEventListener('DOMContentLoaded', function () { + setSelectionAfterPageReady(settings.def_file); + }); setTheme(settings.def_file, settings.def_type, settings.def_integrity, settings.def_crossorigin) } else { + document.addEventListener('DOMContentLoaded', function () { + setSelectionAfterPageReady(file); + }); setTheme(file, type, integrity, crossorigin); } } diff --git a/static/js/waitlist-dom.js b/static/js/waitlist-dom.js index 133f46cb..984027d2 100644 --- a/static/js/waitlist-dom.js +++ b/static/js/waitlist-dom.js @@ -139,10 +139,17 @@ waitlist.listdom = (function(){ } else { imgHTML = ``; } + + let wardecHTML = ''; + if (settings.can_view_fits || entry.character.id === settings.user_id) { + wardecHTML = ``; + } var charRow = $(`
    ${imgHTML} + ${wardecHTML}
    ${entry.character.name}${oldInvites}${newBroTag} ${waitTimeMinutes} min ago
    diff --git a/templates/about.html b/templates/about.html index 188429dc..3bc6489e 100644 --- a/templates/about.html +++ b/templates/about.html @@ -7,9 +7,12 @@ {% assets filters="babili", output="gen/eveproxy.%(version)s.js", "js/base.js", "js/eveproxy.js" %} {% endassets %} -{% assets filters="babili", output="gen/eve-ui.%(version)s.js", "js/fitlink.js", "js/eve-ui-config.js" %} - +{% assets filters="babili", output="gen/eve-ui.%(version)s.js", "js/eve-ui-config.js" %} + {% endassets %} + {% endblock %} {% block data %} diff --git a/templates/base.html b/templates/base.html index bb061bec..0a3be61d 100644 --- a/templates/base.html +++ b/templates/base.html @@ -93,17 +93,22 @@ } function setCurrentTheme() { + let file = localStorage.getItem(settings.setting_key_prefix+"file"); let type = localStorage.getItem(settings.setting_key_prefix+"type"); let integrity = localStorage.getItem(settings.setting_key_prefix+"integrity"); let crossorigin = localStorage.getItem(settings.setting_key_prefix+"crossorigin"); - document.addEventListener('DOMContentLoaded', function () { - setSelectionAfterPageReady(file); - }); + if (file === null || file === "null") { // set the default theme + document.addEventListener('DOMContentLoaded', function () { + setSelectionAfterPageReady(settings.def_file); + }); setTheme(settings.def_file, settings.def_type, settings.def_integrity, settings.def_crossorigin) } else { + document.addEventListener('DOMContentLoaded', function () { + setSelectionAfterPageReady(file); + }); setTheme(file, type, integrity, crossorigin); } } @@ -279,7 +284,7 @@ {% block footer %}