/* eslint-disable */
/* tslint:disable */
/*
 * ---------------------------------------------------------------
 * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API        ##
 * ##                                                           ##
 * ## AUTHOR: acacode                                           ##
 * ## SOURCE: https://github.com/acacode/swagger-typescript-api ##
 * ---------------------------------------------------------------
 */

import { HttpClient, RequestParams } from "./http-client";

export class Memorydomain<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
  /**
   * @description Get the address of the base of this memory domain.
   *
   * @tags MemoryDomain
   * @name BaseList
   * @summary Get the address of the base of this memory domain.
   * @request GET:/memorydomain/base
   */
  baseList = (
    query: {
      memoryDomain: string;
    },
    params: RequestParams = {},
  ) =>
    this.request<string, any>({
      path: `/memorydomain/base`,
      method: "GET",
      query: query,
      ...params,
    });
  /**
   * @description Get the address of the end bound of this memory domain. Note that this address is not in the domain itself, and is the address of the first byte past it.
   *
   * @tags MemoryDomain
   * @name BoundList
   * @summary Get the address of the end bound of this memory domain.
   * @request GET:/memorydomain/bound
   */
  boundList = (
    query: {
      memoryDomain: string;
    },
    params: RequestParams = {},
  ) =>
    this.request<string, any>({
      path: `/memorydomain/bound`,
      method: "GET",
      query: query,
      ...params,
    });
  /**
   * @description Get a short, human-readable name for this memory domain.
   *
   * @tags MemoryDomain
   * @name NameList
   * @summary Get a short, human-readable name for this memory domain.
   * @request GET:/memorydomain/name
   */
  nameList = (
    query: {
      memoryDomain: string;
    },
    params: RequestParams = {},
  ) =>
    this.request<string, any>({
      path: `/memorydomain/name`,
      method: "GET",
      query: query,
      ...params,
    });
  /**
   * @description Read a 16-bit value from the given offset.
   *
   * @tags MemoryDomain
   * @name Read16List
   * @summary Read a 16-bit value from the given offset.
   * @request GET:/memorydomain/read16
   */
  read16List = (
    query: {
      memoryDomain: string;
      /** Address in hex, e.g. 0x03000000 */
      address: string;
    },
    params: RequestParams = {},
  ) =>
    this.request<string, any>({
      path: `/memorydomain/read16`,
      method: "GET",
      query: query,
      ...params,
    });
  /**
   * @description Read a 32-bit value from the given offset.
   *
   * @tags MemoryDomain
   * @name Read32List
   * @summary Read a 32-bit value from the given offset.
   * @request GET:/memorydomain/read32
   */
  read32List = (
    query: {
      memoryDomain: string;
      /** Address in hex, e.g. 0x03000000 */
      address: string;
    },
    params: RequestParams = {},
  ) =>
    this.request<string, any>({
      path: `/memorydomain/read32`,
      method: "GET",
      query: query,
      ...params,
    });
  /**
   * @description Read an 8-bit value from the given offset.
   *
   * @tags MemoryDomain
   * @name Read8List
   * @summary Read an 8-bit value from the given offset.
   * @request GET:/memorydomain/read8
   */
  read8List = (
    query: {
      memoryDomain: string;
      /** Address in hex, e.g. 0x03000000 */
      address: string;
    },
    params: RequestParams = {},
  ) =>
    this.request<string, any>({
      path: `/memorydomain/read8`,
      method: "GET",
      query: query,
      ...params,
    });
  /**
   * @description Read byte range from the given offset.
   *
   * @tags MemoryDomain
   * @name ReadrangeList
   * @summary Read byte range from the given offset.
   * @request GET:/memorydomain/readrange
   */
  readrangeList = (
    query: {
      memoryDomain: string;
      /** Address in hex, e.g. 0x03000000 */
      address: string;
      length: string;
    },
    params: RequestParams = {},
  ) =>
    this.request<string, any>({
      path: `/memorydomain/readrange`,
      method: "GET",
      query: query,
      ...params,
    });
  /**
   * @description Get the size of this memory domain in bytes.
   *
   * @tags MemoryDomain
   * @name SizeList
   * @summary Get the size of this memory domain in bytes.
   * @request GET:/memorydomain/size
   */
  sizeList = (
    query: {
      memoryDomain: string;
    },
    params: RequestParams = {},
  ) =>
    this.request<string, any>({
      path: `/memorydomain/size`,
      method: "GET",
      query: query,
      ...params,
    });
  /**
   * @description Write a 16-bit value from the given offset.
   *
   * @tags MemoryDomain
   * @name Write16Create
   * @summary Write a 16-bit value from the given offset.
   * @request POST:/memorydomain/write16
   */
  write16Create = (
    query: {
      memoryDomain: string;
      /** Address in hex, e.g. 0x03000000 */
      address: string;
      /** @format int32 */
      value: number;
    },
    params: RequestParams = {},
  ) =>
    this.request<string, any>({
      path: `/memorydomain/write16`,
      method: "POST",
      query: query,
      ...params,
    });
  /**
   * @description Write a 32-bit value from the given offset.
   *
   * @tags MemoryDomain
   * @name Write32Create
   * @summary Write a 32-bit value from the given offset.
   * @request POST:/memorydomain/write32
   */
  write32Create = (
    query: {
      memoryDomain: string;
      /** Address in hex, e.g. 0x03000000 */
      address: string;
      /** @format int32 */
      value: number;
    },
    params: RequestParams = {},
  ) =>
    this.request<string, any>({
      path: `/memorydomain/write32`,
      method: "POST",
      query: query,
      ...params,
    });
  /**
   * @description Write an 8-bit value from the given offset.
   *
   * @tags MemoryDomain
   * @name Write8Create
   * @summary Write an 8-bit value from the given offset.
   * @request POST:/memorydomain/write8
   */
  write8Create = (
    query: {
      memoryDomain: string;
      /** Address in hex, e.g. 0x03000000 */
      address: string;
      /** @format int32 */
      value: number;
    },
    params: RequestParams = {},
  ) =>
    this.request<string, any>({
      path: `/memorydomain/write8`,
      method: "POST",
      query: query,
      ...params,
    });
}
