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

import { workspacesWorkspaceBrandsGetWorkspaceBrand } from "../funcs/workspacesWorkspaceBrandsGetWorkspaceBrand.js";
import { workspacesWorkspaceBrandsUpdateWorkspaceBrand } from "../funcs/workspacesWorkspaceBrandsUpdateWorkspaceBrand.js";
import { ClientSDK, RequestOptions } from "../lib/sdks.js";
import * as components from "../models/components/index.js";
import * as operations from "../models/operations/index.js";
import { unwrapAsync } from "../types/fp.js";

export class WorkspaceBrands extends ClientSDK {
  /**
   * Returns details about the brand set for a workspace
   *
   * @remarks
   * This operation retrieves details about a specific workspace. It returns the brand details such as its unique identifier (ID), name, and metadata such as brand colors and logos.
   */
  async getWorkspaceBrand(
    request: operations.GetWorkspaceBrandRequest,
    options?: RequestOptions,
  ): Promise<components.GetWorkspaceBrandResponse> {
    return unwrapAsync(workspacesWorkspaceBrandsGetWorkspaceBrand(
      this,
      request,
      options,
    ));
  }

  /**
   * Updates brand for an existing workspace
   *
   * @remarks
   * This operation updates brand for a specific workspace. It returns the brand details such as its unique identifier (ID), name, and metadata such as brand colors and logos.
   */
  async updateWorkspaceBrand(
    request: operations.UpdateWorkspaceBrandRequest,
    options?: RequestOptions,
  ): Promise<components.UpdateWorkspaceBrandResponse> {
    return unwrapAsync(workspacesWorkspaceBrandsUpdateWorkspaceBrand(
      this,
      request,
      options,
    ));
  }
}
