{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Cw721QueryMsg",
  "oneOf": [
    {
      "description": "Return the owner of the given token, error if token does not exist Return type: OwnerOfResponse",
      "type": "object",
      "required": [
        "owner_of"
      ],
      "properties": {
        "owner_of": {
          "type": "object",
          "required": [
            "token_id"
          ],
          "properties": {
            "include_expired": {
              "description": "unset or false will filter out expired approvals, you must set to true to see them",
              "type": [
                "boolean",
                "null"
              ]
            },
            "token_id": {
              "type": "string"
            }
          }
        }
      },
      "additionalProperties": false
    },
    {
      "description": "Return operator that can access all of the owner's tokens. Return type: `ApprovedResponse`",
      "type": "object",
      "required": [
        "approved"
      ],
      "properties": {
        "approved": {
          "type": "object",
          "required": [
            "operator",
            "owner"
          ],
          "properties": {
            "operator": {
              "type": "string"
            },
            "owner": {
              "type": "string"
            }
          }
        }
      },
      "additionalProperties": false
    },
    {
      "description": "List all operators that can access all of the owner's tokens. Return type: `ApprovedForAllResponse`",
      "type": "object",
      "required": [
        "approved_for_all"
      ],
      "properties": {
        "approved_for_all": {
          "type": "object",
          "required": [
            "owner"
          ],
          "properties": {
            "include_expired": {
              "description": "unset or false will filter out expired approvals, you must set to true to see them",
              "type": [
                "boolean",
                "null"
              ]
            },
            "limit": {
              "type": [
                "integer",
                "null"
              ],
              "format": "uint32",
              "minimum": 0.0
            },
            "owner": {
              "type": "string"
            },
            "start_after": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        }
      },
      "additionalProperties": false
    },
    {
      "description": "Total number of tokens issued",
      "type": "object",
      "required": [
        "num_tokens"
      ],
      "properties": {
        "num_tokens": {
          "type": "object"
        }
      },
      "additionalProperties": false
    },
    {
      "description": "With MetaData Extension. Returns top-level metadata about the contract: `ContractInfoResponse`",
      "type": "object",
      "required": [
        "contract_info"
      ],
      "properties": {
        "contract_info": {
          "type": "object"
        }
      },
      "additionalProperties": false
    },
    {
      "description": "With MetaData Extension. Returns metadata about one particular token, based on *ERC721 Metadata JSON Schema* but directly from the contract: `NftInfoResponse`",
      "type": "object",
      "required": [
        "nft_info"
      ],
      "properties": {
        "nft_info": {
          "type": "object",
          "required": [
            "token_id"
          ],
          "properties": {
            "token_id": {
              "type": "string"
            }
          }
        }
      },
      "additionalProperties": false
    },
    {
      "description": "With MetaData Extension. Returns the result of both `NftInfo` and `OwnerOf` as one query as an optimization for clients: `AllNftInfo`",
      "type": "object",
      "required": [
        "all_nft_info"
      ],
      "properties": {
        "all_nft_info": {
          "type": "object",
          "required": [
            "token_id"
          ],
          "properties": {
            "include_expired": {
              "description": "unset or false will filter out expired approvals, you must set to true to see them",
              "type": [
                "boolean",
                "null"
              ]
            },
            "token_id": {
              "type": "string"
            }
          }
        }
      },
      "additionalProperties": false
    },
    {
      "description": "With Enumerable extension. Returns all tokens owned by the given address, [] if unset. Return type: TokensResponse.",
      "type": "object",
      "required": [
        "tokens"
      ],
      "properties": {
        "tokens": {
          "type": "object",
          "required": [
            "owner"
          ],
          "properties": {
            "limit": {
              "type": [
                "integer",
                "null"
              ],
              "format": "uint32",
              "minimum": 0.0
            },
            "owner": {
              "type": "string"
            },
            "start_after": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        }
      },
      "additionalProperties": false
    },
    {
      "description": "With Enumerable extension. Requires pagination. Lists all token_ids controlled by the contract. Return type: TokensResponse.",
      "type": "object",
      "required": [
        "all_tokens"
      ],
      "properties": {
        "all_tokens": {
          "type": "object",
          "properties": {
            "limit": {
              "type": [
                "integer",
                "null"
              ],
              "format": "uint32",
              "minimum": 0.0
            },
            "start_after": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        }
      },
      "additionalProperties": false
    }
  ]
}
