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

import { observabilityGetObservabilityConfigurationProjects } from "../funcs/observabilityGetObservabilityConfigurationProjects.js";
import { observabilityUpdateObservabilityConfigurationProject } from "../funcs/observabilityUpdateObservabilityConfigurationProject.js";
import { ClientSDK, RequestOptions } from "../lib/sdks.js";
import {
  GetObservabilityConfigurationProjectsRequest,
  GetObservabilityConfigurationProjectsResponseBody,
} from "../models/getobservabilityconfigurationprojectsop.js";
import {
  UpdateObservabilityConfigurationProjectRequest,
  UpdateObservabilityConfigurationProjectResponseBody,
} from "../models/updateobservabilityconfigurationprojectop.js";
import { unwrapAsync } from "../types/fp.js";

export class Observability extends ClientSDK {
  /**
   * Lists disabled Observability Plus projects
   *
   * @remarks
   * Lists the projects that are currently configured as disabled for Observability Plus on a team.
   */
  async getObservabilityConfigurationProjects(
    request: GetObservabilityConfigurationProjectsRequest,
    options?: RequestOptions,
  ): Promise<GetObservabilityConfigurationProjectsResponseBody> {
    return unwrapAsync(observabilityGetObservabilityConfigurationProjects(
      this,
      request,
      options,
    ));
  }

  /**
   * Updates a disabled Observability Plus project setting
   *
   * @remarks
   * Updates whether Observability Plus is disabled for a single project.
   */
  async updateObservabilityConfigurationProject(
    request: UpdateObservabilityConfigurationProjectRequest,
    options?: RequestOptions,
  ): Promise<UpdateObservabilityConfigurationProjectResponseBody> {
    return unwrapAsync(observabilityUpdateObservabilityConfigurationProject(
      this,
      request,
      options,
    ));
  }
}
