{
  "$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
        }
      },
      "additionalProperties": false
    },
    {
      "description": "Return operator that can access all of the owner's tokens. Return type: `ApprovalResponse`",
      "type": "object",
      "required": [
        "approval"
      ],
      "properties": {
        "approval": {
          "type": "object",
          "required": [
            "spender",
            "token_id"
          ],
          "properties": {
            "include_expired": {
              "type": [
                "boolean",
                "null"
              ]
            },
            "spender": {
              "type": "string"
            },
            "token_id": {
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    {
      "description": "Return approvals that a token has Return type: `ApprovalsResponse`",
      "type": "object",
      "required": [
        "approvals"
      ],
      "properties": {
        "approvals": {
          "type": "object",
          "required": [
            "token_id"
          ],
          "properties": {
            "include_expired": {
              "type": [
                "boolean",
                "null"
              ]
            },
            "token_id": {
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    {
      "description": "List all operators that can access all of the owner's tokens Return type: `OperatorsResponse`",
      "type": "object",
      "required": [
        "all_operators"
      ],
      "properties": {
        "all_operators": {
          "type": "object",
          "required": [
            "owner"
          ],
          "properties": {
            "include_expired": {
              "description": "unset or false will filter out expired items, 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
        }
      },
      "additionalProperties": false
    },
    {
      "description": "Total number of tokens issued",
      "type": "object",
      "required": [
        "num_tokens"
      ],
      "properties": {
        "num_tokens": {
          "type": "object",
          "additionalProperties": false
        }
      },
      "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
        }
      },
      "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
        }
      },
      "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
        }
      },
      "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
        }
      },
      "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
        }
      },
      "additionalProperties": false
    }
  ]
}
