pokeapi OpenAPI & REST API Specification

GitHub

Python api & beginner-friendly repository by @PokeAPI. Model Context Protocol (MCP) server & tools with 5.3k stars.

5,289 stars Python Python 1 file · ~3,472 tokens #api#beginner-friendly#graphql#hacktoberfest#pokeapi#pokemon
Raw JSON API

pokeapi API Specification

Located in openapi.yml on branch HEAD

3.x (YAML) YAML 225.6 KB
Raw YAML Specification
openapi: 3.1.0
info:
  title: PokéAPI
  version: 2.10.0
  description: |-
    All the Pokémon data you'll ever need in one place, easily accessible through a modern free open-source RESTful API.

    ## What is this?

    This is a full RESTful API linked to an extensive database detailing everything about the Pokémon main game series.

    We've covered everything from Pokémon to Berry Flavors.

    ## Where do I start?

    We have awesome [documentation](https://pokeapi.co/docs/v2) on how to use this API. It takes minutes to get started.

    This API will always be publicly available and will never require any extensive setup process to consume.

    Created by [**Paul Hallett**](https://github.com/phalt) and other [**PokéAPI contributors**](https://github.com/PokeAPI/pokeapi#contributing) around the world. Pokémon and Pokémon character names are trademarks of Nintendo.
paths:
  /api/v2/meta/:
    get:
      operationId: meta_retrieve
      description: Returns metadata about the current deployed version of the API,
        including the git commit hash, deploy date, and tag (if any).
      summary: Get API metadata
      tags:
      - utility
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PokeapiMetaResponse'
          description: ''
  /api/v2/ability/:
    get:
      operationId: ability_list
      description: Abilities provide passive effects for Pokémon in battle or in the
        overworld. Pokémon have multiple possible abilities but can have only one
        ability at a time. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Ability)
        for greater detail.
      summary: List abilities
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAbilitySummaryList'
          description: ''
  /api/v2/ability/{id}/:
    get:
      operationId: ability_retrieve
      description: Abilities provide passive effects for Pokémon in battle or in the
        overworld. Pokémon have multiple possible abilities but can have only one
        ability at a time. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Ability)
        for greater detail.
      summary: Get ability
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AbilityDetail'
          description: ''
  /api/v2/berry/:
    get:
      operationId: berry_list
      description: Berries are small fruits that can provide HP and status condition
        restoration, stat enhancement, and even damage negation when eaten by Pokémon.
        Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Berry) for greater
        detail.
      summary: List berries
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - berries
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBerrySummaryList'
          description: ''
  /api/v2/berry/{id}/:
    get:
      operationId: berry_retrieve
      description: Berries are small fruits that can provide HP and status condition
        restoration, stat enhancement, and even damage negation when eaten by Pokémon.
        Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Berry) for greater
        detail.
      summary: Get a berry
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - berries
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BerryDetail'
          description: ''
  /api/v2/berry-firmness/:
    get:
      operationId: berry_firmness_list
      description: Berries can be soft or hard. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Category:Berries_by_firmness)
        for greater detail.
      summary: List berry firmness
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - berries
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBerryFirmnessSummaryList'
          description: ''
  /api/v2/berry-firmness/{id}/:
    get:
      operationId: berry_firmness_retrieve
      description: Berries can be soft or hard. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Category:Berries_by_firmness)
        for greater detail.
      summary: Get berry by firmness
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - berries
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BerryFirmnessDetail'
          description: ''
  /api/v2/berry-flavor/:
    get:
      operationId: berry_flavor_list
      description: Flavors determine whether a Pokémon will benefit or suffer from
        eating a berry based on their **nature**. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Flavor)
        for greater detail.
      summary: List berry flavors
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - berries
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBerryFlavorSummaryList'
          description: ''
  /api/v2/berry-flavor/{id}/:
    get:
      operationId: berry_flavor_retrieve
      description: Flavors determine whether a Pokémon will benefit or suffer from
        eating a berry based on their **nature**. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Flavor)
        for greater detail.
      summary: Get berries by flavor
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - berries
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BerryFlavorDetail'
          description: ''
  /api/v2/characteristic/:
    get:
      operationId: characteristic_list
      description: Characteristics indicate which stat contains a Pokémon's highest
        IV. A Pokémon's Characteristic is determined by the remainder of its highest
        IV divided by 5 (gene_modulo). Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Characteristic)
        for greater detail.
      summary: List characteristics
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCharacteristicSummaryList'
          description: ''
  /api/v2/characteristic/{id}/:
    get:
      operationId: characteristic_retrieve
      description: Characteristics indicate which stat contains a Pokémon's highest
        IV. A Pokémon's Characteristic is determined by the remainder of its highest
        IV divided by 5 (gene_modulo). Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Characteristic)
        for greater detail.
      summary: Get characteristic
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CharacteristicDetail'
          description: ''
  /api/v2/contest-type/:
    get:
      operationId: contest_type_list
      description: Contest types are categories judges used to weigh a Pokémon's condition
        in Pokémon contests. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Contest_condition)
        for greater detail.
      summary: List contest types
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - contests
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedContestTypeSummaryList'
          description: ''
  /api/v2/contest-type/{id}/:
    get:
      operationId: contest_type_retrieve
      description: Contest types are categories judges used to weigh a Pokémon's condition
        in Pokémon contests. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Contest_condition)
        for greater detail.
      summary: Get contest type
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - contests
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContestTypeDetail'
          description: ''
  /api/v2/contest-effect/:
    get:
      operationId: contest_effect_list
      description: Contest effects refer to the effects of moves when used in contests.
      summary: List contest effects
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - contests
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedContestEffectSummaryList'
          description: ''
  /api/v2/contest-effect/{id}/:
    get:
      operationId: contest_effect_retrieve
      description: Contest effects refer to the effects of moves when used in contests.
      summary: Get contest effect
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - contests
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContestEffectDetail'
          description: ''
  /api/v2/egg-group/:
    get:
      operationId: egg_group_list
      description: Egg Groups are categories which determine which Pokémon are able
        to interbreed. Pokémon may belong to either one or two Egg Groups. Check out
        [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Egg_Group) for greater
        detail.
      summary: List egg groups
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedEggGroupSummaryList'
          description: ''
  /api/v2/egg-group/{id}/:
    get:
      operationId: egg_group_retrieve
      description: Egg Groups are categories which determine which Pokémon are able
        to interbreed. Pokémon may belong to either one or two Egg Groups. Check out
        [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Egg_Group) for greater
        detail.
      summary: Get egg group
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EggGroupDetail'
          description: ''
  /api/v2/encounter-method/:
    get:
      operationId: encounter_method_list
      description: Methods by which the player might can encounter Pokémon in the
        wild, e.g., walking in tall grass. Check out Bulbapedia for greater detail.
      summary: List encounter methods
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - encounters
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedEncounterMethodSummaryList'
          description: ''
  /api/v2/encounter-method/{id}/:
    get:
      operationId: encounter_method_retrieve
      description: Methods by which the player might can encounter Pokémon in the
        wild, e.g., walking in tall grass. Check out Bulbapedia for greater detail.
      summary: Get encounter method
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - encounters
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EncounterMethodDetail'
          description: ''
  /api/v2/encounter-condition/:
    get:
      operationId: encounter_condition_list
      description: Conditions which affect what pokemon might appear in the wild,
        e.g., day or night.
      summary: List encounter conditions
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - encounters
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedEncounterConditionSummaryList'
          description: ''
  /api/v2/encounter-condition/{id}/:
    get:
      operationId: encounter_condition_retrieve
      description: Conditions which affect what pokemon might appear in the wild,
        e.g., day or night.
      summary: Get encounter condition
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - encounters
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EncounterConditionDetail'
          description: ''
  /api/v2/encounter-condition-value/:
    get:
      operationId: encounter_condition_value_list
      description: Encounter condition values are the various states that an encounter
        condition can have, i.e., time of day can be either day or night.
      summary: List encounter condition values
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - encounters
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedEncounterConditionValueSummaryList'
          description: ''
  /api/v2/encounter-condition-value/{id}/:
    get:
      operationId: encounter_condition_value_retrieve
      description: Encounter condition values are the various states that an encounter
        condition can have, i.e., time of day can be either day or night.
      summary: Get encounter condition value
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - encounters
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EncounterConditionValueDetail'
          description: ''
  /api/v2/evolution-chain/:
    get:
      operationId: evolution_chain_list
      description: Evolution chains are essentially family trees. They start with
        the lowest stage within a family and detail evolution conditions for each
        as well as Pokémon they can evolve into up through the hierarchy.
      summary: List evolution chains
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - evolution
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedEvolutionChainSummaryList'
          description: ''
  /api/v2/evolution-chain/{id}/:
    get:
      operationId: evolution_chain_retrieve
      description: Evolution chains are essentially family trees. They start with
        the lowest stage within a family and detail evolution conditions for each
        as well as Pokémon they can evolve into up through the hierarchy.
      summary: Get evolution chain
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - evolution
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EvolutionChainDetail'
          description: ''
  /api/v2/evolution-trigger/:
    get:
      operationId: evolution_trigger_list
      description: Evolution triggers are the events and conditions that cause a Pokémon
        to evolve. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Methods_of_evolution)
        for greater detail.
      summary: List evolution triggers
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - evolution
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedEvolutionTriggerSummaryList'
          description: ''
  /api/v2/evolution-trigger/{id}/:
    get:
      operationId: evolution_trigger_retrieve
      description: Evolution triggers are the events and conditions that cause a Pokémon
        to evolve. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Methods_of_evolution)
        for greater detail.
      summary: Get evolution trigger
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - evolution
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EvolutionTriggerDetail'
          description: ''
  /api/v2/evolution-variable/:
    get:
      operationId: evolution_variable_list
      description: Evolution variables represent parameters (such as Encryption Constant
        and Personality Value) used in boolean expressions for form-branching evolutions.
        Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Personality_value)
        for greater detail.
      summary: List evolution variables
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - evolution
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedEvolutionVariableSummaryList'
          description: ''
  /api/v2/evolution-variable/{id}/:
    get:
      operationId: evolution_variable_retrieve
      description: Evolution variables represent parameters (such as Encryption Constant
        and Personality Value) used in boolean expressions for form-branching evolutions.
        Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Personality_value)
        for greater detail.
      summary: Get evolution variable
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - evolution
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EvolutionVariableDetail'
          description: ''
  /api/v2/generation/:
    get:
      operationId: generation_list
      description: A generation is a grouping of the Pokémon games that separates
        them based on the Pokémon they include. In each generation, a new set of Pokémon,
        Moves, Abilities and Types that did not exist in the previous generation are
        released.
      summary: List genrations
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - games
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedGenerationSummaryList'
          description: ''
  /api/v2/generation/{id}/:
    get:
      operationId: generation_retrieve
      description: A generation is a grouping of the Pokémon games that separates
        them based on the Pokémon they include. In each generation, a new set of Pokémon,
        Moves, Abilities and Types that did not exist in the previous generation are
        released.
      summary: Get genration
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - games
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerationDetail'
          description: ''
  /api/v2/gender/:
    get:
      operationId: gender_list
      description: Genders were introduced in Generation II for the purposes of breeding
        Pokémon but can also result in visual differences or even different evolutionary
        lines. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Gender)
        for greater detail.
      summary: List genders
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedGenderSummaryList'
          description: ''
  /api/v2/gender/{id}/:
    get:
      operationId: gender_retrieve
      description: Genders were introduced in Generation II for the purposes of breeding
        Pokémon but can also result in visual differences or even different evolutionary
        lines. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Gender)
        for greater detail.
      summary: Get gender
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenderDetail'
          description: ''
  /api/v2/growth-rate/:
    get:
      operationId: growth_rate_list
      description: Growth rates are the speed with which Pokémon gain levels through
        experience. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Experience)
        for greater detail.
      summary: List growth rates
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedGrowthRateSummaryList'
          description: ''
  /api/v2/growth-rate/{id}/:
    get:
      operationId: growth_rate_retrieve
      description: Growth rates are the speed with which Pokémon gain levels through
        experience. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Experience)
        for greater detail.
      summary: Get growth rate
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GrowthRateDetail'
          description: ''
  /api/v2/item/:
    get:
      operationId: item_list
      description: An item is an object in the games which the player can pick up,
        keep in their bag, and use in some manner. They have various uses, including
        healing, powering up, helping catch Pokémon, or to access a new area.
      summary: List items
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - items
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedItemSummaryList'
          description: ''
  /api/v2/item/{id}/:
    get:
      operationId: item_retrieve
      description: An item is an object in the games which the player can pick up,
        keep in their bag, and use in some manner. They have various uses, including
        healing, powering up, helping catch Pokémon, or to access a new area.
      summary: Get item
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - items
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ItemDetail'
          description: ''
  /api/v2/item-category/:
    get:
      operationId: item_category_list
      description: Item categories determine where items will be placed in the players
        bag.
      summary: List item categories
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - items
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedItemCategorySummaryList'
          description: ''
  /api/v2/item-category/{id}/:
    get:
      operationId: item_category_retrieve
      description: Item categories determine where items will be placed in the players
        bag.
      summary: Get item category
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - items
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ItemCategoryDetail'
          description: ''
  /api/v2/item-attribute/:
    get:
      operationId: item_attribute_list
      description: Item attributes define particular aspects of items, e.g."usable
        in battle" or "consumable".
      summary: List item attributes
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - items
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedItemAttributeSummaryList'
          description: ''
  /api/v2/item-attribute/{id}/:
    get:
      operationId: item_attribute_retrieve
      description: Item attributes define particular aspects of items, e.g."usable
        in battle" or "consumable".
      summary: Get item attribute
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - items
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ItemAttributeDetail'
          description: ''
  /api/v2/item-fling-effect/:
    get:
      operationId: item_fling_effect_list
      description: The various effects of the move"Fling" when used with different
        items.
      summary: List item fling effects
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - items
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedItemFlingEffectSummaryList'
          description: ''
  /api/v2/item-fling-effect/{id}/:
    get:
      operationId: item_fling_effect_retrieve
      description: The various effects of the move"Fling" when used with different
        items.
      summary: Get item fling effect
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - items
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ItemFlingEffectDetail'
          description: ''
  /api/v2/item-pocket/:
    get:
      operationId: item_pocket_list
      description: Pockets within the players bag used for storing items by category.
      summary: List item pockets
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - items
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedItemPocketSummaryList'
          description: ''
  /api/v2/item-pocket/{id}/:
    get:
      operationId: item_pocket_retrieve
      description: Pockets within the players bag used for storing items by category.
      summary: Get item pocket
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - items
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ItemPocketDetail'
          description: ''
  /api/v2/currency/:
    get:
      operationId: currency_list
      description: Currencies used to buy items.
      summary: List currencies
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - items
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCurrencySummaryList'
          description: ''
  /api/v2/currency/{id}/:
    get:
      operationId: currency_retrieve
      description: Currencies used to buy items.
      summary: Get currency
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - items
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CurrencyDetail'
          description: ''
  /api/v2/language/:
    get:
      operationId: language_list
      description: Languages for translations of API resource information.
      summary: List languages
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - utility
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLanguageSummaryList'
          description: ''
  /api/v2/language/{id}/:
    get:
      operationId: language_retrieve
      description: Languages for translations of API resource information.
      summary: Get language
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - utility
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LanguageDetail'
          description: ''
  /api/v2/location/:
    get:
      operationId: location_list
      description: Locations that can be visited within the games. Locations make
        up sizable portions of regions, like cities or routes.
      summary: List locations
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - location
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLocationSummaryList'
          description: ''
  /api/v2/location/{id}/:
    get:
      operationId: location_retrieve
      description: Locations that can be visited within the games. Locations make
        up sizable portions of regions, like cities or routes.
      summary: Get location
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - location
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocationDetail'
          description: ''
  /api/v2/location-area/:
    get:
      operationId: location_area_list
      description: Location areas are sections of areas, such as floors in a building
        or cave. Each area has its own set of possible Pokémon encounters.
      summary: List location areas
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - location
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLocationAreaSummaryList'
          description: ''
  /api/v2/location-area/{id}/:
    get:
      operationId: location_area_retrieve
      description: Location areas are sections of areas, such as floors in a building
        or cave. Each area has its own set of possible Pokémon encounters.
      summary: Get location area
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this location area.
        required: true
      tags:
      - location
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocationAreaDetail'
          description: ''
  /api/v2/machine/:
    get:
      operationId: machine_list
      description: Machines are the representation of items that teach moves to Pokémon.
        They vary from version to version, so it is not certain that one specific
        TM or HM corresponds to a single Machine.
      summary: List machines
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - machines
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMachineSummaryList'
          description: ''
  /api/v2/machine/{id}/:
    get:
      operationId: machine_retrieve
      description: Machines are the representation of items that teach moves to Pokémon.
        They vary from version to version, so it is not certain that one specific
        TM or HM corresponds to a single Machine.
      summary: Get machine
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - machines
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MachineDetail'
          description: ''
  /api/v2/move/:
    get:
      operationId: move_list
      description: Moves are the skills of Pokémon in battle. In battle, a Pokémon
        uses one move each turn. Some moves (including those learned by Hidden Machine)
        can be used outside of battle as well, usually for the purpose of removing
        obstacles or exploring new areas.
      summary: List moves
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - moves
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMoveSummaryList'
          description: ''
  /api/v2/move/{id}/:
    get:
      operationId: move_retrieve
      description: Moves are the skills of Pokémon in battle. In battle, a Pokémon
        uses one move each turn. Some moves (including those learned by Hidden Machine)
        can be used outside of battle as well, usually for the purpose of removing
        obstacles or exploring new areas.
      summary: Get move
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - moves
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoveDetail'
          description: ''
  /api/v2/move-ailment/:
    get:
      operationId: move_ailment_list
      description: Move Ailments are status conditions caused by moves used during
        battle. See [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Status_condition)
        for greater detail.
      summary: List move meta ailments
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - moves
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMoveMetaAilmentSummaryList'
          description: ''
  /api/v2/move-ailment/{id}/:
    get:
      operationId: move_ailment_retrieve
      description: Move Ailments are status conditions caused by moves used during
        battle. See [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Status_condition)
        for greater detail.
      summary: Get move meta ailment
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - moves
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoveMetaAilmentDetail'
          description: ''
  /api/v2/move-battle-style/:
    get:
      operationId: move_battle_style_list
      description: Styles of moves when used in the Battle Palace. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Battle_Frontier_(Generation_III))
        for greater detail.
      summary: List move battle styles
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - moves
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMoveBattleStyleSummaryList'
          description: ''
  /api/v2/move-battle-style/{id}/:
    get:
      operationId: move_battle_style_retrieve
      description: Styles of moves when used in the Battle Palace. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Battle_Frontier_(Generation_III))
        for greater detail.
      summary: Get move battle style
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - moves
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoveBattleStyleDetail'
          description: ''
  /api/v2/move-category/:
    get:
      operationId: move_category_list
      description: Very general categories that loosely group move effects.
      summary: List move meta categories
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - moves
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMoveMetaCategorySummaryList'
          description: ''
  /api/v2/move-category/{id}/:
    get:
      operationId: move_category_retrieve
      description: Very general categories that loosely group move effects.
      summary: Get move meta category
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - moves
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoveMetaCategoryDetail'
          description: ''
  /api/v2/move-damage-class/:
    get:
      operationId: move_damage_class_list
      description: Damage classes moves can have, e.g. physical, special, or non-damaging.
      summary: List move damage classes
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMoveDamageClassSummaryList'
          description: ''
  /api/v2/move-damage-class/{id}/:
    get:
      operationId: move_damage_class_retrieve
      description: Damage classes moves can have, e.g. physical, special, or non-damaging.
      summary: Get move damage class
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoveDamageClassDetail'
          description: ''
  /api/v2/move-learn-method/:
    get:
      operationId: move_learn_method_list
      description: Methods by which Pokémon can learn moves.
      summary: List move learn methods
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - moves
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMoveLearnMethodSummaryList'
          description: ''
  /api/v2/move-learn-method/{id}/:
    get:
      operationId: move_learn_method_retrieve
      description: Methods by which Pokémon can learn moves.
      summary: Get move learn method
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - moves
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoveLearnMethodDetail'
          description: ''
  /api/v2/move-target/:
    get:
      operationId: move_target_list
      description: Targets moves can be directed at during battle. Targets can be
        Pokémon, environments or even other moves.
      summary: List move targets
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - moves
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMoveTargetSummaryList'
          description: ''
  /api/v2/move-target/{id}/:
    get:
      operationId: move_target_retrieve
      description: Targets moves can be directed at during battle. Targets can be
        Pokémon, environments or even other moves.
      summary: Get move target
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - moves
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoveTargetDetail'
          description: ''
  /api/v2/nature/:
    get:
      operationId: nature_list
      description: Natures influence how a Pokémon's stats grow. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Nature)
        for greater detail.
      summary: List natures
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedNatureSummaryList'
          description: ''
  /api/v2/nature/{id}/:
    get:
      operationId: nature_retrieve
      description: Natures influence how a Pokémon's stats grow. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Nature)
        for greater detail.
      summary: Get nature
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NatureDetail'
          description: ''
  /api/v2/pal-park-area/:
    get:
      operationId: pal_park_area_list
      description: Areas used for grouping Pokémon encounters in Pal Park. They're
        like habitats that are specific to Pal Park.
      summary: List pal park areas
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - location
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPalParkAreaSummaryList'
          description: ''
  /api/v2/pal-park-area/{id}/:
    get:
      operationId: pal_park_area_retrieve
      description: Areas used for grouping Pokémon encounters in Pal Park. They're
        like habitats that are specific to Pal Park.
      summary: Get pal park area
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - location
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PalParkAreaDetail'
          description: ''
  /api/v2/pokedex/:
    get:
      operationId: pokedex_list
      description: A Pokédex is a handheld electronic encyclopedia device; one which
        is capable of recording and retaining information of the various Pokémon in
        a given region with the exception of the national dex and some smaller dexes
        related to portions of a region. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Pokedex)
        for greater detail.
      summary: List pokedex
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - games
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPokedexSummaryList'
          description: ''
  /api/v2/pokedex/{id}/:
    get:
      operationId: pokedex_retrieve
      description: A Pokédex is a handheld electronic encyclopedia device; one which
        is capable of recording and retaining information of the various Pokémon in
        a given region with the exception of the national dex and some smaller dexes
        related to portions of a region. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Pokedex)
        for greater detail.
      summary: Get pokedex
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - games
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PokedexDetail'
          description: ''
  /api/v2/pokemon/:
    get:
      operationId: pokemon_list
      description: Pokémon are the creatures that inhabit the world of the Pokémon
        games. They can be caught using Pokéballs and trained by battling with other
        Pokémon. Each Pokémon belongs to a specific species but may take on a variant
        which makes it differ from other Pokémon of the same species, such as base
        stats, available abilities and typings. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_(species))
        for greater detail.
      summary: List pokemon
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPokemonSummaryList'
          description: ''
  /api/v2/pokemon/{id}/:
    get:
      operationId: pokemon_retrieve
      description: Pokémon are the creatures that inhabit the world of the Pokémon
        games. They can be caught using Pokéballs and trained by battling with other
        Pokémon. Each Pokémon belongs to a specific species but may take on a variant
        which makes it differ from other Pokémon of the same species, such as base
        stats, available abilities and typings. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_(species))
        for greater detail.
      summary: Get pokemon
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PokemonDetail'
          description: ''
  /api/v2/pokemon-color/:
    get:
      operationId: pokemon_color_list
      description: Colors used for sorting Pokémon in a Pokédex. The color listed
        in the Pokédex is usually the color most apparent or covering each Pokémon's
        body. No orange category exists; Pokémon that are primarily orange are listed
        as red or brown.
      summary: List pokemon colors
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPokemonColorSummaryList'
          description: ''
  /api/v2/pokemon-color/{id}/:
    get:
      operationId: pokemon_color_retrieve
      description: Colors used for sorting Pokémon in a Pokédex. The color listed
        in the Pokédex is usually the color most apparent or covering each Pokémon's
        body. No orange category exists; Pokémon that are primarily orange are listed
        as red or brown.
      summary: Get pokemon color
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PokemonColorDetail'
          description: ''
  /api/v2/pokemon-form/:
    get:
      operationId: pokemon_form_list
      description: Some Pokémon may appear in one of multiple, visually different
        forms. These differences are purely cosmetic. For variations within a Pokémon
        species, which do differ in more than just visuals, the 'Pokémon' entity is
        used to represent such a variety.
      summary: List pokemon forms
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPokemonFormSummaryList'
          description: ''
  /api/v2/pokemon-form/{id}/:
    get:
      operationId: pokemon_form_retrieve
      description: Some Pokémon may appear in one of multiple, visually different
        forms. These differences are purely cosmetic. For variations within a Pokémon
        species, which do differ in more than just visuals, the 'Pokémon' entity is
        used to represent such a variety.
      summary: Get pokemon form
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PokemonFormDetail'
          description: ''
  /api/v2/pokemon-habitat/:
    get:
      operationId: pokemon_habitat_list
      description: Habitats are generally different terrain Pokémon can be found in
        but can also be areas designated for rare or legendary Pokémon.
      summary: List pokemom habitas
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPokemonHabitatSummaryList'
          description: ''
  /api/v2/pokemon-habitat/{id}/:
    get:
      operationId: pokemon_habitat_retrieve
      description: Habitats are generally different terrain Pokémon can be found in
        but can also be areas designated for rare or legendary Pokémon.
      summary: Get pokemom habita
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PokemonHabitatDetail'
          description: ''
  /api/v2/pokemon-shape/:
    get:
      operationId: pokemon_shape_list
      description: Shapes used for sorting Pokémon in a Pokédex.
      summary: List pokemon shapes
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPokemonShapeSummaryList'
          description: ''
  /api/v2/pokemon-shape/{id}/:
    get:
      operationId: pokemon_shape_retrieve
      description: Shapes used for sorting Pokémon in a Pokédex.
      summary: Get pokemon shape
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PokemonShapeDetail'
          description: ''
  /api/v2/pokemon-species/:
    get:
      operationId: pokemon_species_list
      description: A Pokémon Species forms the basis for at least one Pokémon. Attributes
        of a Pokémon species are shared across all varieties of Pokémon within the
        species. A good example is Wormadam; Wormadam is the species which can be
        found in three different varieties, Wormadam-Trash, Wormadam-Sandy and Wormadam-Plant.
      summary: List pokemon species
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPokemonSpeciesSummaryList'
          description: ''
  /api/v2/pokemon-species/{id}/:
    get:
      operationId: pokemon_species_retrieve
      description: A Pokémon Species forms the basis for at least one Pokémon. Attributes
        of a Pokémon species are shared across all varieties of Pokémon within the
        species. A good example is Wormadam; Wormadam is the species which can be
        found in three different varieties, Wormadam-Trash, Wormadam-Sandy and Wormadam-Plant.
      summary: Get pokemon species
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PokemonSpeciesDetail'
          description: ''
  /api/v2/pokeathlon-stat/:
    get:
      operationId: pokeathlon_stat_list
      description: Pokeathlon Stats are different attributes of a Pokémon's performance
        in Pokéathlons. In Pokéathlons, competitions happen on different courses;
        one for each of the different Pokéathlon stats. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9athlon)
        for greater detail.
      summary: List pokeathlon stats
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPokeathlonStatSummaryList'
          description: ''
  /api/v2/pokeathlon-stat/{id}/:
    get:
      operationId: pokeathlon_stat_retrieve
      description: Pokeathlon Stats are different attributes of a Pokémon's performance
        in Pokéathlons. In Pokéathlons, competitions happen on different courses;
        one for each of the different Pokéathlon stats. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9athlon)
        for greater detail.
      summary: Get pokeathlon stat
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PokeathlonStatDetail'
          description: ''
  /api/v2/region/:
    get:
      operationId: region_list
      description: A region is an organized area of the Pokémon world. Most often,
        the main difference between regions is the species of Pokémon that can be
        encountered within them.
      summary: List regions
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - location
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedRegionSummaryList'
          description: ''
  /api/v2/region/{id}/:
    get:
      operationId: region_retrieve
      description: A region is an organized area of the Pokémon world. Most often,
        the main difference between regions is the species of Pokémon that can be
        encountered within them.
      summary: Get region
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - location
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegionDetail'
          description: ''
  /api/v2/stat/:
    get:
      operationId: stat_list
      description: Stats determine certain aspects of battles. Each Pokémon has a
        value for each stat which grows as they gain levels and can be altered momentarily
        by effects in battles.
      summary: List stats
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedStatSummaryList'
          description: ''
  /api/v2/stat/{id}/:
    get:
      operationId: stat_retrieve
      description: Stats determine certain aspects of battles. Each Pokémon has a
        value for each stat which grows as they gain levels and can be altered momentarily
        by effects in battles.
      summary: Get stat
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatDetail'
          description: ''
  /api/v2/super-contest-effect/:
    get:
      operationId: super_contest_effect_list
      description: Super contest effects refer to the effects of moves when used in
        super contests.
      summary: List super contest effects
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - contests
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSuperContestEffectSummaryList'
          description: ''
  /api/v2/super-contest-effect/{id}/:
    get:
      operationId: super_contest_effect_retrieve
      description: Super contest effects refer to the effects of moves when used in
        super contests.
      summary: Get super contest effect
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - contests
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuperContestEffectDetail'
          description: ''
  /api/v2/type/:
    get:
      operationId: type_list
      description: 'Types are properties for Pokémon and their moves. Each type has
        three properties: which types of Pokémon it is super effective against, which
        types of Pokémon it is not very effective against, and which types of Pokémon
        it is completely ineffective against.'
      summary: List types
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedTypeSummaryList'
          description: ''
  /api/v2/type/{id}/:
    get:
      operationId: type_retrieve
      description: 'Types are properties for Pokémon and their moves. Each type has
        three properties: which types of Pokémon it is super effective against, which
        types of Pokémon it is not very effective against, and which types of Pokémon
        it is completely ineffective against.'
      summary: Get types
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - pokemon
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TypeDetail'
          description: ''
  /api/v2/version/:
    get:
      operationId: version_list
      description: Versions of the games, e.g., Red, Blue or Yellow.
      summary: List versions
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - games
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedVersionSummaryList'
          description: ''
  /api/v2/version/{id}/:
    get:
      operationId: version_retrieve
      description: Versions of the games, e.g., Red, Blue or Yellow.
      summary: Get version
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - games
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionDetail'
          description: ''
  /api/v2/version-group/:
    get:
      operationId: version_group_list
      description: Version groups categorize highly similar versions of the games.
      summary: List version groups
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: q
        schema:
          type: string
        description: "> Only available locally and not at [pokeapi.co](https://pokeapi.co/docs/v2)\nCase-insensitive
          query applied on the `name` property. "
      tags:
      - games
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedVersionGroupSummaryList'
          description: ''
  /api/v2/version-group/{id}/:
    get:
      operationId: version_group_retrieve
      description: Version groups categorize highly similar versions of the games.
      summary: Get version group
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: This parameter can be a string or an integer.
        required: true
      tags:
      - games
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionGroupDetail'
          description: ''
  /api/v2/pokemon/{pokemon_id}/encounters:
    get:
      operationId: pokemon_encounters_list
      description: Handles Pokemon Encounters as a sub-resource.
      summary: Get pokemon encounter
      parameters:
      - in: path
        name: pokemon_id
        schema:
          type: string
          pattern: ^\d+$
        required: true
      tags:
      - encounters
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PokemonEncounterResponse'
          description: ''
components:
  schemas:
    AbilityChange:
      type: object
      properties:
        version_group:
          $ref: '#/components/schemas/VersionGroupSummary'
        effect_entries:
          type: array
          items:
            $ref: '#/components/schemas/AbilityChangeEffectText'
          readOnly: true
      required:
      - effect_entries
      - version_group
    AbilityChangeEffectText:
      type: object
      properties:
        effect:
          type: string
          maxLength: 6000
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - effect
      - language
    AbilityDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        is_main_series:
          type: boolean
        generation:
          $ref: '#/components/schemas/GenerationSummary'
        names:
          type: array
          items:
            $ref: '#/components/schemas/AbilityName'
          readOnly: true
        effect_entries:
          type: array
          items:
            $ref: '#/components/schemas/AbilityEffectText'
          readOnly: true
        effect_changes:
          type: array
          items:
            $ref: '#/components/schemas/AbilityChange'
          readOnly: true
        flavor_text_entries:
          type: array
          items:
            $ref: '#/components/schemas/AbilityFlavorText'
          readOnly: true
        pokemon:
          type: array
          items:
            $ref: '#/components/schemas/AbilityPokemonDetail'
          readOnly: true
      required:
      - effect_changes
      - effect_entries
      - flavor_text_entries
      - generation
      - id
      - name
      - names
      - pokemon
    AbilityEffectText:
      type: object
      properties:
        effect:
          type: string
          maxLength: 6000
        short_effect:
          type: string
          maxLength: 300
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - effect
      - language
      - short_effect
    AbilityFlavorText:
      type: object
      properties:
        flavor_text:
          type: string
        language:
          $ref: '#/components/schemas/LanguageSummary'
        version_group:
          $ref: '#/components/schemas/VersionGroupSummary'
      required:
      - flavor_text
      - language
      - version_group
    AbilityName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    AbilityPokemonDetail:
      type: object
      properties:
        is_hidden:
          type: boolean
        slot:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        pokemon:
          $ref: '#/components/schemas/PokemonSummary'
      required:
      - pokemon
      - slot
    AbilitySummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    BerryDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        growth_time:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        max_harvest:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        natural_gift_power:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        size:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        smoothness:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        soil_dryness:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        firmness:
          $ref: '#/components/schemas/BerryFirmnessSummary'
        flavors:
          type: array
          items:
            $ref: '#/components/schemas/BerryFlavorMap'
          readOnly: true
        item:
          $ref: '#/components/schemas/ItemSummary'
        natural_gift_type:
          $ref: '#/components/schemas/TypeSummary'
      required:
      - firmness
      - flavors
      - id
      - item
      - name
      - natural_gift_type
    BerryFirmnessDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        berries:
          type: array
          items:
            $ref: '#/components/schemas/BerrySummary'
          readOnly: true
        names:
          type: array
          items:
            $ref: '#/components/schemas/BerryFirmnessName'
          readOnly: true
      required:
      - berries
      - id
      - name
      - names
    BerryFirmnessName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    BerryFirmnessSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    BerryFlavorBerryMap:
      type: object
      properties:
        potency:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        berry:
          $ref: '#/components/schemas/BerrySummary'
      required:
      - berry
      - potency
    BerryFlavorDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        berries:
          type: array
          items:
            $ref: '#/components/schemas/BerryFlavorBerryMap'
          readOnly: true
        contest_type:
          $ref: '#/components/schemas/ContestTypeSummary'
        names:
          type: array
          items:
            $ref: '#/components/schemas/BerryFlavorName'
          readOnly: true
      required:
      - berries
      - contest_type
      - id
      - name
      - names
    BerryFlavorMap:
      type: object
      properties:
        potency:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        flavor:
          $ref: '#/components/schemas/BerryFlavorSummary'
      required:
      - flavor
      - potency
    BerryFlavorName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    BerryFlavorSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    BerrySummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    CharacteristicDescription:
      type: object
      properties:
        description:
          type: string
          maxLength: 2000
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
    CharacteristicDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        gene_modulo:
          type: integer
        possible_values:
          type: array
          items:
            type: integer
          readOnly: true
        highest_stat:
          $ref: '#/components/schemas/StatSummary'
        descriptions:
          type: array
          items:
            $ref: '#/components/schemas/CharacteristicDescription'
          readOnly: true
      required:
      - descriptions
      - gene_modulo
      - highest_stat
      - id
      - possible_values
    CharacteristicSummary:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - url
    ContestEffectDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        appeal:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        jam:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        effect_entries:
          type: array
          items:
            $ref: '#/components/schemas/ContestEffectEffectText'
          readOnly: true
        flavor_text_entries:
          type: array
          items:
            $ref: '#/components/schemas/ContestEffectFlavorText'
          readOnly: true
      required:
      - appeal
      - effect_entries
      - flavor_text_entries
      - id
      - jam
    ContestEffectEffectText:
      type: object
      properties:
        effect:
          type: string
          maxLength: 6000
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - effect
      - language
    ContestEffectFlavorText:
      type: object
      properties:
        flavor_text:
          type: string
          maxLength: 500
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - flavor_text
      - language
    ContestEffectSummary:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - url
    ContestTypeDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        berry_flavor:
          allOf:
          - $ref: '#/components/schemas/BerryFlavorSummary'
          readOnly: true
        names:
          type: array
          items:
            $ref: '#/components/schemas/ContestTypeName'
          readOnly: true
      required:
      - berry_flavor
      - id
      - name
      - names
    ContestTypeName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        color:
          type: string
          maxLength: 10
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - color
      - language
      - name
    ContestTypeSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    CurrencyDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        names:
          type: array
          items:
            $ref: '#/components/schemas/CurrencyName'
          readOnly: true
      required:
      - id
      - name
      - names
    CurrencyName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    CurrencySummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    EggGroupDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        names:
          type: array
          items:
            $ref: '#/components/schemas/EggGroupName'
          readOnly: true
        pokemon_species:
          type: array
          items:
            $ref: '#/components/schemas/PokemonSpeciesSummary'
          readOnly: true
      required:
      - id
      - name
      - names
      - pokemon_species
    EggGroupName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    EggGroupSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    EncounterConditionDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        values:
          type: array
          items:
            $ref: '#/components/schemas/EncounterConditionValueSummary'
          readOnly: true
        names:
          type: array
          items:
            $ref: '#/components/schemas/EncounterConditionName'
          readOnly: true
      required:
      - id
      - name
      - names
      - values
    EncounterConditionName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    EncounterConditionSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    EncounterConditionValueDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        condition:
          $ref: '#/components/schemas/EncounterConditionSummary'
        names:
          type: array
          items:
            $ref: '#/components/schemas/EncounterConditionValueName'
          readOnly: true
      required:
      - condition
      - id
      - name
      - names
    EncounterConditionValueName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    EncounterConditionValueSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    EncounterMethodDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        order:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        names:
          type: array
          items:
            $ref: '#/components/schemas/EncounterMethodName'
          readOnly: true
      required:
      - id
      - name
      - names
    EncounterMethodName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    EncounterMethodSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    EncounterPokemonDetail:
      type: object
      properties:
        min_perfect_ivs:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        always_shiny:
          type: boolean
        never_shiny:
          type: boolean
        is_alpha:
          type: boolean
    EvolutionChainDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        baby_trigger_item:
          $ref: '#/components/schemas/ItemSummary'
        chain:
          allOf:
          - $ref: '#/components/schemas/EvolutionChainLink'
          readOnly: true
      required:
      - baby_trigger_item
      - chain
      - id
    EvolutionChainLink:
      type: object
      properties:
        is_baby:
          type: boolean
        species:
          $ref: '#/components/schemas/PokemonSpeciesSummary'
        evolution_details:
          type: array
          items:
            $ref: '#/components/schemas/PokemonEvolution'
        evolves_to:
          type: array
          items:
            type: object
            additionalProperties: {}
      required:
      - evolution_details
      - evolves_to
      - is_baby
      - species
    EvolutionChainSummary:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - url
    EvolutionConditionExpression:
      type: object
      properties:
        expression:
          type: string
          description: Evaluatable RPN condition expression using evolution variables
            (e.g. 'EC 100 % 0 ==')
        percentage_chance:
          type:
          - number
          - 'null'
          format: double
          description: Percentage chance of evolution under this condition (0-100)
        variables:
          type: array
          items:
            $ref: '#/components/schemas/EvolutionVariableSummary'
          description: Evolution variables referenced in the expression
      required:
      - expression
      - percentage_chance
      - variables
    EvolutionTriggerDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        names:
          type: array
          items:
            $ref: '#/components/schemas/EvolutionTriggerName'
          readOnly: true
        pokemon_species:
          type: array
          items:
            $ref: '#/components/schemas/PokemonSpeciesSummary'
          readOnly: true
      required:
      - id
      - name
      - names
      - pokemon_species
    EvolutionTriggerName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    EvolutionTriggerSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    EvolutionVariableDescription:
      type: object
      properties:
        description:
          type: string
          maxLength: 2000
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
    EvolutionVariableDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        symbol:
          type: string
          maxLength: 10
        data_type:
          type: string
          maxLength: 20
        source:
          type: string
          description: 'Where the value comes from: ''pokemon'' for data stored on
            the Pokemon (e.g. EC, PID), ''player-input'' for an action taken by the
            player while evolving (e.g. SPIN_DIR, SPIN_SEC)'
          maxLength: 20
        version_group:
          $ref: '#/components/schemas/VersionGroupSummary'
        names:
          type: array
          items:
            $ref: '#/components/schemas/EvolutionVariableName'
          readOnly: true
        descriptions:
          type: array
          items:
            $ref: '#/components/schemas/EvolutionVariableDescription'
          readOnly: true
      required:
      - descriptions
      - id
      - name
      - names
      - symbol
      - version_group
    EvolutionVariableName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    EvolutionVariableSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    Experience:
      type: object
      properties:
        level:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        experience:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
      required:
      - experience
      - level
    GenderDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        pokemon_species_details:
          type: array
          items:
            $ref: '#/components/schemas/GenderPokemonSpecies'
          readOnly: true
        required_for_evolution:
          type: array
          items:
            $ref: '#/components/schemas/PokemonSpeciesSummary'
          readOnly: true
      required:
      - id
      - name
      - pokemon_species_details
      - required_for_evolution
    GenderPokemonSpecies:
      type: object
      properties:
        rate:
          type: integer
        pokemon_species:
          $ref: '#/components/schemas/PokemonSpeciesSummary'
      required:
      - pokemon_species
      - rate
    GenderSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    GenerationDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        abilities:
          type: array
          items:
            $ref: '#/components/schemas/AbilitySummary'
          readOnly: true
        main_region:
          $ref: '#/components/schemas/RegionSummary'
        moves:
          type: array
          items:
            $ref: '#/components/schemas/MoveSummary'
          readOnly: true
        names:
          type: array
          items:
            $ref: '#/components/schemas/GenerationName'
          readOnly: true
        pokemon_species:
          type: array
          items:
            $ref: '#/components/schemas/PokemonSpeciesSummary'
          readOnly: true
        types:
          type: array
          items:
            $ref: '#/components/schemas/TypeSummary'
          readOnly: true
        version_groups:
          type: array
          items:
            $ref: '#/components/schemas/VersionGroupSummary'
          readOnly: true
      required:
      - abilities
      - id
      - main_region
      - moves
      - name
      - names
      - pokemon_species
      - types
      - version_groups
    GenerationName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    GenerationSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    GrowthRateDescription:
      type: object
      properties:
        description:
          type: string
          maxLength: 2000
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
    GrowthRateDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        formula:
          type: string
          maxLength: 500
        descriptions:
          type: array
          items:
            $ref: '#/components/schemas/GrowthRateDescription'
          readOnly: true
        levels:
          type: array
          items:
            $ref: '#/components/schemas/Experience'
          readOnly: true
        pokemon_species:
          type: array
          items:
            $ref: '#/components/schemas/PokemonSpeciesSummary'
          readOnly: true
      required:
      - descriptions
      - formula
      - id
      - levels
      - name
      - pokemon_species
    GrowthRateSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    ItemAttributeDescription:
      type: object
      properties:
        description:
          type: string
          maxLength: 2000
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
    ItemAttributeDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        descriptions:
          type: array
          items:
            $ref: '#/components/schemas/ItemAttributeDescription'
          readOnly: true
        items:
          type: array
          items:
            $ref: '#/components/schemas/ItemSummary'
          readOnly: true
        names:
          type: array
          items:
            $ref: '#/components/schemas/ItemAttributeName'
          readOnly: true
      required:
      - descriptions
      - id
      - items
      - name
      - names
    ItemAttributeName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    ItemAttributeSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    ItemCategoryDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        items:
          type: array
          items:
            $ref: '#/components/schemas/ItemSummary'
          readOnly: true
        names:
          type: array
          items:
            $ref: '#/components/schemas/ItemCategoryName'
          readOnly: true
        pocket:
          $ref: '#/components/schemas/ItemPocketSummary'
      required:
      - id
      - items
      - name
      - names
      - pocket
    ItemCategoryName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    ItemCategorySummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    ItemDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        fling_power:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        fling_effect:
          $ref: '#/components/schemas/ItemFlingEffectSummary'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/ItemAttributeSummary'
          readOnly: true
        category:
          $ref: '#/components/schemas/ItemCategorySummary'
        effect_entries:
          type: array
          items:
            $ref: '#/components/schemas/ItemEffectText'
          readOnly: true
        flavor_text_entries:
          type: array
          items:
            $ref: '#/components/schemas/ItemFlavorText'
          readOnly: true
        game_indices:
          type: array
          items:
            $ref: '#/components/schemas/ItemGameIndex'
          readOnly: true
        prices:
          type: array
          items:
            $ref: '#/components/schemas/ItemPrice'
          readOnly: true
        names:
          type: array
          items:
            $ref: '#/components/schemas/ItemName'
          readOnly: true
        held_by_pokemon:
          type: array
          items:
            $ref: '#/components/schemas/PokemonHeldItem'
          readOnly: true
        sprites:
          allOf:
          - $ref: '#/components/schemas/ItemSprites'
          readOnly: true
        baby_trigger_for:
          oneOf:
          - $ref: '#/components/schemas/EvolutionChainSummary'
          - type: 'null'
          readOnly: true
        machines:
          type: array
          items:
            $ref: '#/components/schemas/ItemMachine'
          readOnly: true
      required:
      - attributes
      - baby_trigger_for
      - category
      - effect_entries
      - flavor_text_entries
      - fling_effect
      - game_indices
      - held_by_pokemon
      - id
      - machines
      - name
      - names
      - prices
      - sprites
    ItemEffectText:
      type: object
      properties:
        effect:
          type: string
          maxLength: 6000
        short_effect:
          type: string
          maxLength: 300
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - effect
      - language
      - short_effect
    ItemFlavorText:
      type: object
      properties:
        text:
          type: string
        version_group:
          $ref: '#/components/schemas/VersionGroupSummary'
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - text
      - version_group
    ItemFlingEffectDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        effect_entries:
          type: array
          items:
            $ref: '#/components/schemas/ItemFlingEffectEffectText'
          readOnly: true
        items:
          type: array
          items:
            $ref: '#/components/schemas/ItemSummary'
          readOnly: true
      required:
      - effect_entries
      - id
      - items
      - name
    ItemFlingEffectEffectText:
      type: object
      properties:
        effect:
          type: string
          maxLength: 6000
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - effect
      - language
    ItemFlingEffectSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    ItemGameIndex:
      type: object
      properties:
        game_index:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        generation:
          $ref: '#/components/schemas/GenerationSummary'
      required:
      - game_index
      - generation
    ItemMachine:
      type: object
      properties:
        machine:
          $ref: '#/components/schemas/MachineSummary'
        version_group:
          $ref: '#/components/schemas/VersionGroupSummary'
      required:
      - machine
      - version_group
    ItemName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    ItemPocketDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        categories:
          type: array
          items:
            $ref: '#/components/schemas/ItemCategorySummary'
          readOnly: true
        names:
          type: array
          items:
            $ref: '#/components/schemas/ItemPocketName'
          readOnly: true
      required:
      - categories
      - id
      - name
      - names
    ItemPocketName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    ItemPocketSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    ItemPrice:
      type: object
      properties:
        purchase_price:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        sell_price:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        currency:
          $ref: '#/components/schemas/CurrencySummary'
        version_group:
          $ref: '#/components/schemas/VersionGroupSummary'
      required:
      - currency
      - version_group
    ItemSprites:
      type: object
      properties:
        default:
          type:
          - string
          - 'null'
      required:
      - default
    ItemSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    LanguageDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        official:
          type: boolean
        iso639:
          type: string
          maxLength: 10
        iso3166:
          type: string
          maxLength: 2
        names:
          type: array
          items:
            $ref: '#/components/schemas/LanguageName'
          readOnly: true
      required:
      - id
      - iso3166
      - iso639
      - name
      - names
    LanguageName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    LanguageSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    LocationAreaDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        game_index:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        encounter_method_rates:
          type: array
          items:
            $ref: '#/components/schemas/LocationAreaEncounterRate'
          readOnly: true
        location:
          $ref: '#/components/schemas/LocationSummary'
        names:
          type: array
          items:
            $ref: '#/components/schemas/LocationAreaName'
          readOnly: true
        pokemon_encounters:
          type: array
          items:
            $ref: '#/components/schemas/LocationAreaPokemonEncounter'
          readOnly: true
      required:
      - encounter_method_rates
      - game_index
      - id
      - location
      - name
      - names
      - pokemon_encounters
    LocationAreaEncounterDetail:
      type: object
      properties:
        min_level:
          type: integer
        max_level:
          type: integer
        chance:
          type: integer
          default: 0
        method:
          $ref: '#/components/schemas/EncounterMethodSummary'
        condition_values:
          type: array
          items:
            $ref: '#/components/schemas/EncounterConditionValueSummary'
          readOnly: true
        pokemon_details:
          oneOf:
          - $ref: '#/components/schemas/EncounterPokemonDetail'
          - type: 'null'
          readOnly: true
      required:
      - condition_values
      - max_level
      - min_level
      - pokemon_details
    LocationAreaEncounterRate:
      type: object
      properties:
        encounter_method:
          $ref: '#/components/schemas/EncounterMethodSummary'
        version_details:
          type: array
          items:
            $ref: '#/components/schemas/LocationAreaEncounterVersionDetail'
      required:
      - encounter_method
      - version_details
    LocationAreaEncounterVersionDetail:
      type: object
      properties:
        rate:
          type: integer
        version:
          $ref: '#/components/schemas/VersionSummary'
      required:
      - rate
      - version
    LocationAreaName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    LocationAreaPokemonEncounter:
      type: object
      properties:
        pokemon:
          $ref: '#/components/schemas/PokemonSummary'
        version_details:
          type: array
          items:
            $ref: '#/components/schemas/LocationAreaPokemonEncounterVersion'
      required:
      - pokemon
      - version_details
    LocationAreaPokemonEncounterVersion:
      type: object
      properties:
        version:
          $ref: '#/components/schemas/VersionSummary'
        max_chance:
          type: integer
        encounter_details:
          type: array
          items:
            $ref: '#/components/schemas/LocationAreaEncounterDetail'
      required:
      - encounter_details
      - max_chance
      - version
    LocationAreaSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    LocationDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        region:
          oneOf:
          - $ref: '#/components/schemas/RegionSummary'
          - type: 'null'
        names:
          type: array
          items:
            $ref: '#/components/schemas/LocationName'
          readOnly: true
        game_indices:
          type: array
          items:
            $ref: '#/components/schemas/LocationGameIndex'
          readOnly: true
        areas:
          type: array
          items:
            $ref: '#/components/schemas/LocationAreaSummary'
          readOnly: true
      required:
      - areas
      - game_indices
      - id
      - name
      - names
      - region
    LocationGameIndex:
      type: object
      properties:
        game_index:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        generation:
          $ref: '#/components/schemas/GenerationSummary'
      required:
      - game_index
      - generation
    LocationName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    LocationSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    MachineDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        item:
          $ref: '#/components/schemas/ItemSummary'
        version_group:
          $ref: '#/components/schemas/VersionGroupSummary'
        move:
          $ref: '#/components/schemas/MoveSummary'
      required:
      - id
      - item
      - move
      - version_group
    MachineSummary:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - url
    MoveBattleStyleDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        names:
          type: array
          items:
            $ref: '#/components/schemas/MoveBattleStyleName'
          readOnly: true
      required:
      - id
      - name
      - names
    MoveBattleStyleName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    MoveBattleStyleSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    MoveChange:
      type: object
      properties:
        accuracy:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        power:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        pp:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        effect_chance:
          type: integer
        effect_entries:
          type: array
          items:
            $ref: '#/components/schemas/MoveEffectEffectText'
          readOnly: true
        type:
          $ref: '#/components/schemas/TypeSummary'
        version_group:
          $ref: '#/components/schemas/VersionGroupSummary'
      required:
      - effect_chance
      - effect_entries
      - type
      - version_group
    MoveComboUsage:
      type: object
      properties:
        use_before:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/MoveSummary'
        use_after:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/MoveSummary'
      required:
      - use_after
      - use_before
    MoveCombos:
      type: object
      properties:
        normal:
          $ref: '#/components/schemas/MoveComboUsage'
        super:
          $ref: '#/components/schemas/MoveComboUsage'
      required:
      - normal
      - super
    MoveDamageClassDescription:
      type: object
      properties:
        description:
          type: string
          maxLength: 2000
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
    MoveDamageClassDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        descriptions:
          type: array
          items:
            $ref: '#/components/schemas/MoveDamageClassDescription'
          readOnly: true
        moves:
          type: array
          items:
            $ref: '#/components/schemas/MoveSummary'
          readOnly: true
        names:
          type: array
          items:
            $ref: '#/components/schemas/MoveDamageClassName'
          readOnly: true
      required:
      - descriptions
      - id
      - moves
      - name
      - names
    MoveDamageClassName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    MoveDamageClassSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    MoveDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        accuracy:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        effect_chance:
          type: integer
        pp:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        priority:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        power:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        contest_combos:
          oneOf:
          - $ref: '#/components/schemas/MoveCombos'
          - type: 'null'
          readOnly: true
        contest_type:
          $ref: '#/components/schemas/ContestTypeSummary'
        contest_effect:
          $ref: '#/components/schemas/ContestEffectSummary'
        damage_class:
          $ref: '#/components/schemas/MoveDamageClassSummary'
        effect_entries:
          type: array
          items:
            $ref: '#/components/schemas/MoveEffectEffectText'
          readOnly: true
        effect_changes:
          type: array
          items:
            $ref: '#/components/schemas/MoveEffectChange'
          readOnly: true
        generation:
          $ref: '#/components/schemas/GenerationSummary'
        meta:
          allOf:
          - $ref: '#/components/schemas/MoveMeta'
          readOnly: true
        names:
          type: array
          items:
            $ref: '#/components/schemas/MoveName'
          readOnly: true
        past_values:
          type: array
          items:
            $ref: '#/components/schemas/MoveChange'
          readOnly: true
        stat_changes:
          type: array
          items:
            $ref: '#/components/schemas/MoveMetaStatChange'
          readOnly: true
        super_contest_effect:
          $ref: '#/components/schemas/SuperContestEffectSummary'
        target:
          $ref: '#/components/schemas/MoveTargetSummary'
        type:
          $ref: '#/components/schemas/TypeSummary'
        machines:
          type: array
          items:
            $ref: '#/components/schemas/ItemMachine'
          readOnly: true
        flavor_text_entries:
          type: array
          items:
            $ref: '#/components/schemas/MoveFlavorText'
          readOnly: true
        learned_by_pokemon:
          type: array
          items:
            $ref: '#/components/schemas/PokemonSummary'
          readOnly: true
      required:
      - contest_combos
      - contest_effect
      - contest_type
      - damage_class
      - effect_chance
      - effect_changes
      - effect_entries
      - flavor_text_entries
      - generation
      - id
      - learned_by_pokemon
      - machines
      - meta
      - name
      - names
      - past_values
      - stat_changes
      - super_contest_effect
      - target
      - type
    MoveEffectChange:
      type: object
      properties:
        version_group:
          $ref: '#/components/schemas/VersionGroupSummary'
        effect_entries:
          type: array
          items:
            $ref: '#/components/schemas/MoveEffectChangeEffectText'
          readOnly: true
      required:
      - effect_entries
      - version_group
    MoveEffectChangeEffectText:
      type: object
      properties:
        effect:
          type: string
          maxLength: 6000
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - effect
      - language
    MoveEffectEffectText:
      type: object
      properties:
        effect:
          type: string
          maxLength: 6000
        short_effect:
          type: string
          maxLength: 300
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - effect
      - language
      - short_effect
    MoveFlavorText:
      type: object
      properties:
        flavor_text:
          type: string
        language:
          $ref: '#/components/schemas/LanguageSummary'
        version_group:
          $ref: '#/components/schemas/VersionGroupSummary'
      required:
      - flavor_text
      - language
      - version_group
    MoveLearnMethodDescription:
      type: object
      properties:
        description:
          type: string
          maxLength: 2000
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
    MoveLearnMethodDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        names:
          type: array
          items:
            $ref: '#/components/schemas/MoveLearnMethodName'
          readOnly: true
        descriptions:
          type: array
          items:
            $ref: '#/components/schemas/MoveLearnMethodDescription'
          readOnly: true
        version_groups:
          type: array
          items:
            $ref: '#/components/schemas/VersionGroupSummary'
          readOnly: true
      required:
      - descriptions
      - id
      - name
      - names
      - version_groups
    MoveLearnMethodName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    MoveLearnMethodSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    MoveMeta:
      type: object
      properties:
        ailment:
          $ref: '#/components/schemas/MoveMetaAilmentSummary'
        category:
          $ref: '#/components/schemas/MoveMetaCategorySummary'
        min_hits:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        max_hits:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        min_turns:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        max_turns:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        drain:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        healing:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        crit_rate:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        ailment_chance:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        flinch_chance:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        stat_chance:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
      required:
      - ailment
      - category
    MoveMetaAilmentDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        moves:
          type: array
          items:
            $ref: '#/components/schemas/MoveSummary'
          readOnly: true
        names:
          type: array
          items:
            $ref: '#/components/schemas/MoveMetaAilmentName'
          readOnly: true
      required:
      - id
      - moves
      - name
      - names
    MoveMetaAilmentName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    MoveMetaAilmentSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    MoveMetaCategoryDescription:
      type: object
      properties:
        description:
          type: string
          maxLength: 2000
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
    MoveMetaCategoryDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        descriptions:
          type: array
          items:
            $ref: '#/components/schemas/MoveMetaCategoryDescription'
          readOnly: true
        moves:
          type: array
          items:
            $ref: '#/components/schemas/MoveSummary'
          readOnly: true
      required:
      - descriptions
      - id
      - moves
      - name
    MoveMetaCategorySummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    MoveMetaStatChange:
      type: object
      properties:
        change:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        stat:
          $ref: '#/components/schemas/StatSummary'
      required:
      - change
      - stat
    MoveName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    MoveStatChange:
      type: object
      properties:
        change:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        move:
          $ref: '#/components/schemas/MoveSummary'
      required:
      - change
      - move
    MoveSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    MoveTargetDescription:
      type: object
      properties:
        description:
          type: string
          maxLength: 2000
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
    MoveTargetDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        descriptions:
          type: array
          items:
            $ref: '#/components/schemas/MoveTargetDescription'
          readOnly: true
        moves:
          type: array
          items:
            $ref: '#/components/schemas/MoveSummary'
          readOnly: true
        names:
          type: array
          items:
            $ref: '#/components/schemas/MoveTargetName'
          readOnly: true
      required:
      - descriptions
      - id
      - moves
      - name
      - names
    MoveTargetName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    MoveTargetSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    NatureBattleStylePreference:
      type: object
      properties:
        low_hp_preference:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        high_hp_preference:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        move_battle_style:
          $ref: '#/components/schemas/MoveBattleStyleSummary'
      required:
      - high_hp_preference
      - low_hp_preference
      - move_battle_style
    NatureDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        decreased_stat:
          $ref: '#/components/schemas/StatSummary'
        increased_stat:
          $ref: '#/components/schemas/StatSummary'
        likes_flavor:
          $ref: '#/components/schemas/BerryFlavorSummary'
        hates_flavor:
          $ref: '#/components/schemas/BerryFlavorSummary'
        berries:
          type: array
          items:
            $ref: '#/components/schemas/BerrySummary'
          readOnly: true
        pokeathlon_stat_changes:
          type: array
          items:
            $ref: '#/components/schemas/NaturePokeathlonStat'
          readOnly: true
        move_battle_style_preferences:
          type: array
          items:
            $ref: '#/components/schemas/NatureBattleStylePreference'
          readOnly: true
        names:
          type: array
          items:
            $ref: '#/components/schemas/NatureName'
          readOnly: true
      required:
      - berries
      - decreased_stat
      - hates_flavor
      - id
      - increased_stat
      - likes_flavor
      - move_battle_style_preferences
      - name
      - names
      - pokeathlon_stat_changes
    NatureName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    NaturePokeathlonStat:
      type: object
      properties:
        max_change:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        pokeathlon_stat:
          $ref: '#/components/schemas/PokeathlonStatSummary'
      required:
      - max_change
      - pokeathlon_stat
    NatureSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    PaginatedAbilitySummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/AbilitySummary'
    PaginatedBerryFirmnessSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/BerryFirmnessSummary'
    PaginatedBerryFlavorSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/BerryFlavorSummary'
    PaginatedBerrySummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/BerrySummary'
    PaginatedCharacteristicSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/CharacteristicSummary'
    PaginatedContestEffectSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ContestEffectSummary'
    PaginatedContestTypeSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ContestTypeSummary'
    PaginatedCurrencySummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/CurrencySummary'
    PaginatedEggGroupSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/EggGroupSummary'
    PaginatedEncounterConditionSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/EncounterConditionSummary'
    PaginatedEncounterConditionValueSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/EncounterConditionValueSummary'
    PaginatedEncounterMethodSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/EncounterMethodSummary'
    PaginatedEvolutionChainSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/EvolutionChainSummary'
    PaginatedEvolutionTriggerSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/EvolutionTriggerSummary'
    PaginatedEvolutionVariableSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/EvolutionVariableSummary'
    PaginatedGenderSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/GenderSummary'
    PaginatedGenerationSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/GenerationSummary'
    PaginatedGrowthRateSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/GrowthRateSummary'
    PaginatedItemAttributeSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ItemAttributeSummary'
    PaginatedItemCategorySummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ItemCategorySummary'
    PaginatedItemFlingEffectSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ItemFlingEffectSummary'
    PaginatedItemPocketSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ItemPocketSummary'
    PaginatedItemSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ItemSummary'
    PaginatedLanguageSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/LanguageSummary'
    PaginatedLocationAreaSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/LocationAreaSummary'
    PaginatedLocationSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/LocationSummary'
    PaginatedMachineSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/MachineSummary'
    PaginatedMoveBattleStyleSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/MoveBattleStyleSummary'
    PaginatedMoveDamageClassSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/MoveDamageClassSummary'
    PaginatedMoveLearnMethodSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/MoveLearnMethodSummary'
    PaginatedMoveMetaAilmentSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/MoveMetaAilmentSummary'
    PaginatedMoveMetaCategorySummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/MoveMetaCategorySummary'
    PaginatedMoveSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/MoveSummary'
    PaginatedMoveTargetSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/MoveTargetSummary'
    PaginatedNatureSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/NatureSummary'
    PaginatedPalParkAreaSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PalParkAreaSummary'
    PaginatedPokeathlonStatSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PokeathlonStatSummary'
    PaginatedPokedexSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PokedexSummary'
    PaginatedPokemonColorSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PokemonColorSummary'
    PaginatedPokemonFormSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PokemonFormSummary'
    PaginatedPokemonHabitatSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PokemonHabitatSummary'
    PaginatedPokemonShapeSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PokemonShapeSummary'
    PaginatedPokemonSpeciesSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PokemonSpeciesSummary'
    PaginatedPokemonSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PokemonSummary'
    PaginatedRegionSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/RegionSummary'
    PaginatedStatSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/StatSummary'
    PaginatedSuperContestEffectSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/SuperContestEffectSummary'
    PaginatedTypeSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/TypeSummary'
    PaginatedVersionGroupSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/VersionGroupSummary'
    PaginatedVersionSummaryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/VersionSummary'
    PalParkAreaDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        names:
          type: array
          items:
            $ref: '#/components/schemas/PalParkAreaName'
          readOnly: true
        pokemon_encounters:
          type: array
          items:
            $ref: '#/components/schemas/PalParkEncounter'
          readOnly: true
      required:
      - id
      - name
      - names
      - pokemon_encounters
    PalParkAreaName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    PalParkAreaSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    PalParkEncounter:
      type: object
      properties:
        base_score:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        rate:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        pokemon_species:
          $ref: '#/components/schemas/PokemonSpeciesSummary'
      required:
      - pokemon_species
      - rate
    PokeapiMetaResponse:
      type: object
      properties:
        deploy_date:
          type:
          - string
          - 'null'
        hash:
          type:
          - string
          - 'null'
        tag:
          type:
          - string
          - 'null'
      required:
      - deploy_date
      - hash
      - tag
    PokeathlonStatAffectingNature:
      type: object
      properties:
        max_change:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        nature:
          $ref: '#/components/schemas/NatureSummary'
      required:
      - max_change
      - nature
    PokeathlonStatAffectingNatures:
      type: object
      properties:
        increase:
          type: array
          items:
            $ref: '#/components/schemas/PokeathlonStatAffectingNature'
        decrease:
          type: array
          items:
            $ref: '#/components/schemas/PokeathlonStatAffectingNature'
      required:
      - decrease
      - increase
    PokeathlonStatDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        affecting_natures:
          allOf:
          - $ref: '#/components/schemas/PokeathlonStatAffectingNatures'
          readOnly: true
        names:
          type: array
          items:
            $ref: '#/components/schemas/PokeathlonStatName'
          readOnly: true
      required:
      - affecting_natures
      - id
      - name
      - names
    PokeathlonStatName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    PokeathlonStatSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    PokedexDescription:
      type: object
      properties:
        description:
          type: string
          maxLength: 2000
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
    PokedexDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        is_main_series:
          type: boolean
        descriptions:
          type: array
          items:
            $ref: '#/components/schemas/PokedexDescription'
          readOnly: true
        names:
          type: array
          items:
            $ref: '#/components/schemas/PokedexName'
          readOnly: true
        pokemon_entries:
          type: array
          items:
            $ref: '#/components/schemas/PokemonDexNumber'
          readOnly: true
        region:
          $ref: '#/components/schemas/RegionSummary'
        version_groups:
          type: array
          items:
            $ref: '#/components/schemas/VersionGroupSummary'
          readOnly: true
      required:
      - descriptions
      - id
      - name
      - names
      - pokemon_entries
      - region
      - version_groups
    PokedexName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    PokedexSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    PokemonAbility:
      type: object
      properties:
        is_hidden:
          type: boolean
        slot:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        ability:
          $ref: '#/components/schemas/AbilitySummary'
      required:
      - ability
      - slot
    PokemonAbilityPast:
      type: object
      properties:
        is_hidden:
          type: boolean
        slot:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        ability:
          $ref: '#/components/schemas/AbilitySummary'
      required:
      - ability
      - slot
    PokemonColorDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        names:
          type: array
          items:
            $ref: '#/components/schemas/PokemonColorName'
          readOnly: true
        pokemon_species:
          type: array
          items:
            $ref: '#/components/schemas/PokemonSpeciesSummary'
          readOnly: true
      required:
      - id
      - name
      - names
      - pokemon_species
    PokemonColorName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    PokemonColorSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    PokemonCries:
      type: object
      properties:
        latest:
          type:
          - string
          - 'null'
        legacy:
          type:
          - string
          - 'null'
      required:
      - latest
      - legacy
    PokemonDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        base_experience:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        height:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        is_default:
          type: boolean
        order:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        weight:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        abilities:
          type: array
          items:
            $ref: '#/components/schemas/PokemonAbility'
          readOnly: true
        past_abilities:
          type: array
          items:
            $ref: '#/components/schemas/PokemonPastAbility'
          readOnly: true
        forms:
          type: array
          items:
            $ref: '#/components/schemas/PokemonFormSummary'
          readOnly: true
        game_indices:
          type: array
          items:
            $ref: '#/components/schemas/PokemonGameIndex'
          readOnly: true
        held_items:
          type: array
          items:
            $ref: '#/components/schemas/PokemonHeldItem'
          readOnly: true
        location_area_encounters:
          type: string
          readOnly: true
        moves:
          type: array
          items:
            $ref: '#/components/schemas/PokemonMove'
          readOnly: true
        species:
          $ref: '#/components/schemas/PokemonSpeciesSummary'
        sprites:
          allOf:
          - $ref: '#/components/schemas/PokemonSprites'
          readOnly: true
        cries:
          allOf:
          - $ref: '#/components/schemas/PokemonCries'
          readOnly: true
        stats:
          type: array
          items:
            $ref: '#/components/schemas/PokemonStat'
          readOnly: true
        past_stats:
          type: array
          items:
            $ref: '#/components/schemas/PokemonPastStat'
          readOnly: true
        types:
          type: array
          items:
            $ref: '#/components/schemas/PokemonType'
          readOnly: true
        past_types:
          type: array
          items:
            $ref: '#/components/schemas/PokemonPastType'
          readOnly: true
      required:
      - abilities
      - cries
      - forms
      - game_indices
      - held_items
      - id
      - location_area_encounters
      - moves
      - name
      - past_abilities
      - past_stats
      - past_types
      - species
      - sprites
      - stats
      - types
    PokemonDexEntry:
      type: object
      properties:
        entry_number:
          type: integer
        pokedex:
          $ref: '#/components/schemas/PokedexSummary'
      required:
      - entry_number
      - pokedex
    PokemonDexNumber:
      type: object
      properties:
        entry_number:
          type: integer
        pokemon_species:
          $ref: '#/components/schemas/PokemonSpeciesSummary'
      required:
      - entry_number
      - pokemon_species
    PokemonEncounterDetailResponse:
      type: object
      properties:
        chance:
          type: integer
        condition_values:
          type: array
          items:
            $ref: '#/components/schemas/EncounterConditionValueSummary'
        max_level:
          type: integer
        method:
          $ref: '#/components/schemas/EncounterMethodSummary'
        min_level:
          type: integer
      required:
      - chance
      - condition_values
      - max_level
      - method
      - min_level
    PokemonEncounterResponse:
      type: object
      properties:
        location_area:
          $ref: '#/components/schemas/LocationAreaSummary'
        version_details:
          type: array
          items:
            $ref: '#/components/schemas/PokemonEncounterVersionDetailResponse'
      required:
      - location_area
      - version_details
    PokemonEncounterVersionDetailResponse:
      type: object
      properties:
        version:
          $ref: '#/components/schemas/VersionSummary'
        max_chance:
          type: integer
        encounter_details:
          type: array
          items:
            $ref: '#/components/schemas/PokemonEncounterDetailResponse'
      required:
      - encounter_details
      - max_chance
      - version
    PokemonEvolution:
      type: object
      properties:
        version_group:
          $ref: '#/components/schemas/VersionGroupSummary'
        is_default:
          type: boolean
        item:
          $ref: '#/components/schemas/ItemSummary'
        trigger:
          $ref: '#/components/schemas/EvolutionTriggerSummary'
        gender:
          type:
          - integer
          - 'null'
        held_item:
          $ref: '#/components/schemas/ItemSummary'
        known_move:
          $ref: '#/components/schemas/MoveSummary'
        known_move_type:
          $ref: '#/components/schemas/TypeSummary'
        location:
          $ref: '#/components/schemas/LocationSummary'
        min_level:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        min_happiness:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        min_beauty:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        min_affection:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        near_special_rock:
          type: boolean
        needs_multiplayer:
          type: boolean
        needs_overworld_rain:
          type: boolean
        party_species:
          $ref: '#/components/schemas/PokemonSpeciesSummary'
        party_type:
          $ref: '#/components/schemas/TypeSummary'
        relative_physical_stats:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        time_of_day:
          type: string
          maxLength: 10
        trade_species:
          $ref: '#/components/schemas/PokemonSpeciesSummary'
        turn_upside_down:
          type: boolean
        region:
          $ref: '#/components/schemas/RegionSummary'
        required_pokemon_form:
          $ref: '#/components/schemas/PokemonFormSummary'
        evolved_pokemon_form:
          $ref: '#/components/schemas/PokemonFormSummary'
        used_move:
          $ref: '#/components/schemas/MoveSummary'
        min_move_count:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        min_steps:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        min_damage_taken:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        allowed_natures:
          type: array
          items:
            $ref: '#/components/schemas/NatureSummary'
          readOnly: true
        condition_expression:
          oneOf:
          - $ref: '#/components/schemas/EvolutionConditionExpression'
          - type: 'null'
          readOnly: true
      required:
      - allowed_natures
      - condition_expression
      - evolved_pokemon_form
      - held_item
      - item
      - known_move
      - known_move_type
      - location
      - party_species
      - party_type
      - region
      - required_pokemon_form
      - trade_species
      - trigger
      - used_move
      - version_group
    PokemonFormDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        order:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        form_order:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        is_default:
          type: boolean
        is_battle_only:
          type: boolean
        is_mega:
          type: boolean
        form_name:
          type: string
          maxLength: 30
        pokemon:
          $ref: '#/components/schemas/PokemonSummary'
        sprites:
          allOf:
          - $ref: '#/components/schemas/PokemonFormSprites'
          readOnly: true
        version_group:
          $ref: '#/components/schemas/VersionGroupSummary'
        form_names:
          type: array
          items:
            $ref: '#/components/schemas/PokemonFormName'
          readOnly: true
        names:
          type: array
          items:
            $ref: '#/components/schemas/PokemonFormName'
          readOnly: true
        types:
          type: array
          items:
            $ref: '#/components/schemas/PokemonFormType'
          readOnly: true
        trigger_conditions:
          type: array
          items:
            $ref: '#/components/schemas/PokemonFormTriggerCondition'
          readOnly: true
        flavor_text_entries:
          type: array
          items:
            $ref: '#/components/schemas/PokemonFormFlavorText'
          readOnly: true
      required:
      - flavor_text_entries
      - form_name
      - form_names
      - id
      - name
      - names
      - pokemon
      - sprites
      - trigger_conditions
      - types
      - version_group
    PokemonFormFlavorText:
      type: object
      properties:
        flavor_text:
          type: string
        language:
          $ref: '#/components/schemas/LanguageSummary'
        version:
          $ref: '#/components/schemas/VersionSummary'
      required:
      - flavor_text
      - language
      - version
    PokemonFormName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    PokemonFormSprites:
      type: object
      properties:
        sprites: {}
      required:
      - sprites
    PokemonFormSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    PokemonFormTriggerCondition:
      type: object
      properties:
        trigger:
          type: string
        base_form:
          $ref: '#/components/schemas/PokemonFormSummary'
      required:
      - base_form
      - trigger
    PokemonFormType:
      type: object
      properties:
        slot:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        type:
          $ref: '#/components/schemas/TypeSummary'
      required:
      - slot
      - type
    PokemonGameIndex:
      type: object
      properties:
        game_index:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        version:
          $ref: '#/components/schemas/VersionSummary'
      required:
      - game_index
      - version
    PokemonHabitatDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        names:
          type: array
          items:
            $ref: '#/components/schemas/PokemonHabitatName'
          readOnly: true
        pokemon_species:
          type: array
          items:
            $ref: '#/components/schemas/PokemonSpeciesSummary'
          readOnly: true
      required:
      - id
      - name
      - names
      - pokemon_species
    PokemonHabitatName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    PokemonHabitatSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    PokemonHeldItem:
      type: object
      properties:
        pokemon:
          $ref: '#/components/schemas/PokemonSummary'
        version_details:
          type: array
          items:
            $ref: '#/components/schemas/PokemonHeldItemVersion'
      required:
      - pokemon
      - version_details
    PokemonHeldItemVersion:
      type: object
      properties:
        rarity:
          type: integer
        version:
          $ref: '#/components/schemas/VersionSummary'
      required:
      - rarity
      - version
    PokemonMove:
      type: object
      properties:
        move:
          $ref: '#/components/schemas/MoveSummary'
        version_group_details:
          type: array
          items:
            $ref: '#/components/schemas/PokemonMoveVersionGroup'
      required:
      - move
      - version_group_details
    PokemonMoveVersionGroup:
      type: object
      properties:
        level_learned_at:
          type: integer
        move_learn_method:
          $ref: '#/components/schemas/MoveLearnMethodSummary'
        version_group:
          $ref: '#/components/schemas/VersionGroupSummary'
        order:
          type: integer
      required:
      - level_learned_at
      - move_learn_method
      - version_group
    PokemonPastAbility:
      type: object
      properties:
        abilities:
          type: array
          items:
            $ref: '#/components/schemas/PokemonAbilityPast'
        generation:
          $ref: '#/components/schemas/GenerationSummary'
      required:
      - abilities
      - generation
    PokemonPastStat:
      type: object
      properties:
        generation:
          $ref: '#/components/schemas/GenerationSummary'
        stats:
          type: array
          items:
            $ref: '#/components/schemas/PokemonStat'
      required:
      - generation
      - stats
    PokemonPastType:
      type: object
      properties:
        generation:
          $ref: '#/components/schemas/GenerationSummary'
        types:
          type: array
          items:
            $ref: '#/components/schemas/TypePokemon'
      required:
      - generation
      - types
    PokemonShapeAwesomeName:
      type: object
      properties:
        awesome_name:
          type: string
          maxLength: 30
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - awesome_name
      - language
    PokemonShapeDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        awesome_names:
          type: array
          items:
            $ref: '#/components/schemas/PokemonShapeAwesomeName'
          readOnly: true
        names:
          type: array
          items:
            $ref: '#/components/schemas/PokemonShapeName'
          readOnly: true
        pokemon_species:
          type: array
          items:
            $ref: '#/components/schemas/PokemonSpeciesSummary'
          readOnly: true
      required:
      - awesome_names
      - id
      - name
      - names
      - pokemon_species
    PokemonShapeName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    PokemonShapeSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    PokemonSpeciesDescription:
      type: object
      properties:
        description:
          type: string
          maxLength: 2000
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
    PokemonSpeciesDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        order:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        gender_rate:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        capture_rate:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        base_happiness:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        is_baby:
          type: boolean
        is_legendary:
          type: boolean
        is_mythical:
          type: boolean
        hatch_counter:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        has_gender_differences:
          type: boolean
        forms_switchable:
          type: boolean
        growth_rate:
          $ref: '#/components/schemas/GrowthRateSummary'
        pokedex_numbers:
          type: array
          items:
            $ref: '#/components/schemas/PokemonDexEntry'
          readOnly: true
        egg_groups:
          type: array
          items:
            $ref: '#/components/schemas/EggGroupSummary'
          readOnly: true
        color:
          $ref: '#/components/schemas/PokemonColorSummary'
        shape:
          $ref: '#/components/schemas/PokemonShapeSummary'
        evolves_from_species:
          $ref: '#/components/schemas/PokemonSpeciesSummary'
        evolution_chain:
          $ref: '#/components/schemas/EvolutionChainSummary'
        habitat:
          $ref: '#/components/schemas/PokemonHabitatSummary'
        generation:
          $ref: '#/components/schemas/GenerationSummary'
        names:
          type: array
          items:
            $ref: '#/components/schemas/PokemonSpeciesName'
          readOnly: true
        pal_park_encounters:
          type: array
          items:
            $ref: '#/components/schemas/PokemonSpeciesPalParkEncounter'
          readOnly: true
        form_descriptions:
          type: array
          items:
            $ref: '#/components/schemas/PokemonSpeciesDescription'
          readOnly: true
        flavor_text_entries:
          type: array
          items:
            $ref: '#/components/schemas/PokemonSpeciesFlavorText'
          readOnly: true
        genera:
          type: array
          items:
            $ref: '#/components/schemas/PokemonSpeciesGenus'
          readOnly: true
        varieties:
          type: array
          items:
            $ref: '#/components/schemas/PokemonSpeciesVariety'
          readOnly: true
      required:
      - color
      - egg_groups
      - evolution_chain
      - evolves_from_species
      - flavor_text_entries
      - form_descriptions
      - genera
      - generation
      - growth_rate
      - habitat
      - id
      - name
      - names
      - pal_park_encounters
      - pokedex_numbers
      - shape
      - varieties
    PokemonSpeciesFlavorText:
      type: object
      properties:
        flavor_text:
          type: string
        language:
          $ref: '#/components/schemas/LanguageSummary'
        version:
          $ref: '#/components/schemas/VersionSummary'
      required:
      - flavor_text
      - language
      - version
    PokemonSpeciesGenus:
      type: object
      properties:
        genus:
          type: string
          maxLength: 30
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - genus
      - language
    PokemonSpeciesName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    PokemonSpeciesPalParkEncounter:
      type: object
      properties:
        base_score:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        rate:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        area:
          $ref: '#/components/schemas/PalParkAreaSummary'
      required:
      - area
      - rate
    PokemonSpeciesSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    PokemonSpeciesVariety:
      type: object
      properties:
        is_default:
          type: boolean
        pokemon:
          $ref: '#/components/schemas/PokemonSummary'
      required:
      - is_default
      - pokemon
    PokemonSprites:
      type: object
      properties:
        front_default:
          type:
          - string
          - 'null'
      required:
      - front_default
    PokemonStat:
      type: object
      properties:
        base_stat:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        effort:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        stat:
          $ref: '#/components/schemas/StatSummary'
      required:
      - base_stat
      - effort
      - stat
    PokemonSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    PokemonType:
      type: object
      properties:
        slot:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        type:
          $ref: '#/components/schemas/TypeSummary'
      required:
      - slot
      - type
    RegionDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        locations:
          type: array
          items:
            $ref: '#/components/schemas/LocationSummary'
          readOnly: true
        main_generation:
          oneOf:
          - $ref: '#/components/schemas/GenerationSummary'
          - type: 'null'
          readOnly: true
        names:
          type: array
          items:
            $ref: '#/components/schemas/RegionName'
          readOnly: true
        pokedexes:
          type: array
          items:
            $ref: '#/components/schemas/PokedexSummary'
          readOnly: true
        version_groups:
          type: array
          items:
            $ref: '#/components/schemas/VersionGroupSummary'
          readOnly: true
      required:
      - id
      - locations
      - main_generation
      - name
      - names
      - pokedexes
      - version_groups
    RegionName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    RegionSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    StatAffectingMoves:
      type: object
      properties:
        increase:
          type: array
          items:
            $ref: '#/components/schemas/MoveStatChange'
        decrease:
          type: array
          items:
            $ref: '#/components/schemas/MoveStatChange'
      required:
      - decrease
      - increase
    StatAffectingNatures:
      type: object
      properties:
        increase:
          type: array
          items:
            $ref: '#/components/schemas/NatureSummary'
        decrease:
          type: array
          items:
            $ref: '#/components/schemas/NatureSummary'
      required:
      - decrease
      - increase
    StatDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        game_index:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        is_battle_only:
          type: boolean
        affecting_moves:
          allOf:
          - $ref: '#/components/schemas/StatAffectingMoves'
          readOnly: true
        affecting_natures:
          allOf:
          - $ref: '#/components/schemas/StatAffectingNatures'
          readOnly: true
        affecting_items:
          type: array
          items:
            $ref: '#/components/schemas/ItemSummary'
          readOnly: true
        characteristics:
          type: array
          items:
            $ref: '#/components/schemas/CharacteristicSummary'
          readOnly: true
        move_damage_class:
          $ref: '#/components/schemas/MoveDamageClassSummary'
        names:
          type: array
          items:
            $ref: '#/components/schemas/StatName'
          readOnly: true
      required:
      - affecting_items
      - affecting_moves
      - affecting_natures
      - characteristics
      - game_index
      - id
      - move_damage_class
      - name
      - names
    StatName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    StatSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    SuperContestEffectDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        appeal:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        flavor_text_entries:
          type: array
          items:
            $ref: '#/components/schemas/SuperContestEffectFlavorText'
          readOnly: true
        moves:
          type: array
          items:
            $ref: '#/components/schemas/MoveSummary'
          readOnly: true
      required:
      - appeal
      - flavor_text_entries
      - id
      - moves
    SuperContestEffectFlavorText:
      type: object
      properties:
        flavor_text:
          type: string
          maxLength: 500
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - flavor_text
      - language
    SuperContestEffectSummary:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - url
    TypeDetail:
      type: object
      description: Serializer for the Type resource
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        damage_relations:
          allOf:
          - $ref: '#/components/schemas/TypeRelationships'
          readOnly: true
        past_damage_relations:
          type: array
          items:
            $ref: '#/components/schemas/TypePastRelationships'
          readOnly: true
        game_indices:
          type: array
          items:
            $ref: '#/components/schemas/TypeGameIndex'
          readOnly: true
        generation:
          $ref: '#/components/schemas/GenerationSummary'
        move_damage_class:
          $ref: '#/components/schemas/MoveDamageClassSummary'
        names:
          type: array
          items:
            $ref: '#/components/schemas/TypeName'
          readOnly: true
        pokemon:
          type: array
          items:
            $ref: '#/components/schemas/TypePokemon'
          readOnly: true
        moves:
          type: array
          items:
            $ref: '#/components/schemas/MoveSummary'
          readOnly: true
        sprites:
          allOf:
          - $ref: '#/components/schemas/TypeSprite'
          readOnly: true
      required:
      - damage_relations
      - game_indices
      - generation
      - id
      - move_damage_class
      - moves
      - name
      - names
      - past_damage_relations
      - pokemon
      - sprites
    TypeGameIndex:
      type: object
      properties:
        game_index:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        generation:
          $ref: '#/components/schemas/GenerationSummary'
      required:
      - game_index
      - generation
    TypeName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    TypePastRelationships:
      type: object
      properties:
        generation:
          $ref: '#/components/schemas/GenerationSummary'
        damage_relations:
          $ref: '#/components/schemas/TypeRelationships'
      required:
      - damage_relations
      - generation
    TypePokemon:
      type: object
      properties:
        slot:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        pokemon:
          $ref: '#/components/schemas/PokemonSummary'
      required:
      - pokemon
      - slot
    TypeRelationships:
      type: object
      properties:
        no_damage_to:
          type: array
          items:
            $ref: '#/components/schemas/TypeSummary'
        half_damage_to:
          type: array
          items:
            $ref: '#/components/schemas/TypeSummary'
        double_damage_to:
          type: array
          items:
            $ref: '#/components/schemas/TypeSummary'
        no_damage_from:
          type: array
          items:
            $ref: '#/components/schemas/TypeSummary'
        half_damage_from:
          type: array
          items:
            $ref: '#/components/schemas/TypeSummary'
        double_damage_from:
          type: array
          items:
            $ref: '#/components/schemas/TypeSummary'
      required:
      - double_damage_from
      - double_damage_to
      - half_damage_from
      - half_damage_to
      - no_damage_from
      - no_damage_to
    TypeSprite:
      type: object
      properties:
        sprites: {}
      required:
      - sprites
    TypeSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    VersionDetail:
      type: object
      description: |-
        Should have a link to Version Group info but the Circular
        dependency and compilation order fight eachother and I'm
        not sure how to add anything other than a hyperlink
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        names:
          type: array
          items:
            $ref: '#/components/schemas/VersionName'
          readOnly: true
        version_group:
          $ref: '#/components/schemas/VersionGroupSummary'
      required:
      - id
      - name
      - names
      - version_group
    VersionGroupDetail:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        order:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        generation:
          $ref: '#/components/schemas/GenerationSummary'
        move_learn_methods:
          type: array
          items:
            $ref: '#/components/schemas/MoveLearnMethodSummary'
          readOnly: true
        pokedexes:
          type: array
          items:
            $ref: '#/components/schemas/PokedexSummary'
          readOnly: true
        regions:
          type: array
          items:
            $ref: '#/components/schemas/RegionSummary'
          readOnly: true
        versions:
          type: array
          items:
            $ref: '#/components/schemas/VersionSummary'
          readOnly: true
      required:
      - generation
      - id
      - move_learn_methods
      - name
      - pokedexes
      - regions
      - versions
    VersionGroupSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
    VersionName:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        language:
          $ref: '#/components/schemas/LanguageSummary'
      required:
      - language
      - name
    VersionSummary:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - url
servers:
- url: https://pokeapi.co
tags:
- name: pokemon
  description: Pokémon are the creatures that inhabit the world of the Pokémon games.
    They can be caught using Pokéballs and trained by battling with other Pokémon.
    Each Pokémon belongs to a specific species but may take on a variant which makes
    it differ from other Pokémon of the same species, such as base stats, available
    abilities and typings. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_(species))
    for greater detail.
  externalDocs:
    description: Find more info here
    url: https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon
- name: evolution
  description: Evolution is a process in which a Pokémon changes into a different
    species of Pokémon.
  externalDocs:
    description: Find more info here
    url: https://bulbapedia.bulbagarden.net/wiki/Evolution
- name: berries
  description: Berries can be soft or hard. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Category:Berries_by_firmness)
    for greater detail.
  externalDocs:
    description: Find more info here
    url: https://bulbapedia.bulbagarden.net/wiki/Berry
- name: items
  description: An item is an object in the games which the player can pick up, keep
    in their bag, and use in some manner. They have various uses, including healing,
    powering up, helping catch Pokémon, or to access a new area.
  externalDocs:
    description: Find more info here
    url: https://bulbapedia.bulbagarden.net/wiki/Item
- name: machines
  description: Machines are the representation of items that teach moves to Pokémon.
    They vary from version to version, so it is not certain that one specific TM or
    HM corresponds to a single Machine.
  externalDocs:
    description: Find more info here
    url: https://bulbapedia.bulbagarden.net/wiki/TM
- name: location
  description: Locations that can be visited within the games. Locations make up sizable
    portions of regions, like cities or routes.
  externalDocs:
    description: Find more info here
    url: https://bulbapedia.bulbagarden.net/wiki/List_of_locations_by_index_number
- name: contest
  description: Pokémon Contests are a type of competition often contrasted with Pokémon
    battles and held in Contest Halls
  externalDocs:
    description: Find more info here
    url: https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_Contest
- name: moves
  description: Moves are the skills of Pokémon in battle. In battle, a Pokémon uses
    one move each turn. Some moves (including those learned by Hidden Machine) can
    be used outside of battle as well, usually for the purpose of removing obstacles
    or exploring new areas.
  externalDocs:
    description: Find more info here
    url: https://bulbapedia.bulbagarden.net/wiki/List_of_locations_by_name
- name: encounters
- name: games
  description: The Pokémon games are all video games in the Pokémon franchise.
  externalDocs:
    description: Find more info here
    url: https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_games
- name: utility
externalDocs:
  url: https://pokeapi.co/docs/v2