/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */

import { ClientSDK } from "../lib/sdks.js";
import { Attributes } from "./attributes.js";
import { Comments } from "./comments.js";
import { Entries } from "./entries.js";
import { Lists } from "./lists.js";
import { Meta } from "./meta.js";
import { Notes } from "./notes.js";
import { Objects } from "./objects.js";
import { Records } from "./records.js";
import { Tasks } from "./tasks.js";
import { Threads } from "./threads.js";
import { Webhooks } from "./webhooks.js";
import { WorkspaceMembers } from "./workspacemembers.js";

export class Attio extends ClientSDK {
  private _objects?: Objects;
  get objects(): Objects {
    return (this._objects ??= new Objects(this._options));
  }

  private _attributes?: Attributes;
  get attributes(): Attributes {
    return (this._attributes ??= new Attributes(this._options));
  }

  private _records?: Records;
  get records(): Records {
    return (this._records ??= new Records(this._options));
  }

  private _lists?: Lists;
  get lists(): Lists {
    return (this._lists ??= new Lists(this._options));
  }

  private _entries?: Entries;
  get entries(): Entries {
    return (this._entries ??= new Entries(this._options));
  }

  private _workspaceMembers?: WorkspaceMembers;
  get workspaceMembers(): WorkspaceMembers {
    return (this._workspaceMembers ??= new WorkspaceMembers(this._options));
  }

  private _notes?: Notes;
  get notes(): Notes {
    return (this._notes ??= new Notes(this._options));
  }

  private _tasks?: Tasks;
  get tasks(): Tasks {
    return (this._tasks ??= new Tasks(this._options));
  }

  private _threads?: Threads;
  get threads(): Threads {
    return (this._threads ??= new Threads(this._options));
  }

  private _comments?: Comments;
  get comments(): Comments {
    return (this._comments ??= new Comments(this._options));
  }

  private _webhooks?: Webhooks;
  get webhooks(): Webhooks {
    return (this._webhooks ??= new Webhooks(this._options));
  }

  private _meta?: Meta;
  get meta(): Meta {
    return (this._meta ??= new Meta(this._options));
  }
}
