// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

import { APIResource } from '../../resource';
import * as ScansAPI from './scans';
import {
  ScanCreateParams,
  ScanCreateResponse,
  ScanGetParams,
  ScanGetResponse,
  ScanListParams,
  ScanListResponse,
  ScanListResponsesV4PagePaginationArray,
  Scans,
} from './scans';
import * as TargetEnvironmentsAPI from './target-environments';
import {
  TargetEnvironmentCreateParams,
  TargetEnvironmentCreateResponse,
  TargetEnvironmentDeleteParams,
  TargetEnvironmentDeleteResponse,
  TargetEnvironmentEditParams,
  TargetEnvironmentEditResponse,
  TargetEnvironmentGetParams,
  TargetEnvironmentGetResponse,
  TargetEnvironmentListParams,
  TargetEnvironmentListResponse,
  TargetEnvironmentListResponsesV4PagePaginationArray,
  TargetEnvironmentUpdateParams,
  TargetEnvironmentUpdateResponse,
  TargetEnvironments,
} from './target-environments';
import * as CredentialSetsAPI from './credential-sets/credential-sets';
import {
  CredentialSetCreateParams,
  CredentialSetCreateResponse,
  CredentialSetDeleteParams,
  CredentialSetDeleteResponse,
  CredentialSetEditParams,
  CredentialSetEditResponse,
  CredentialSetGetParams,
  CredentialSetGetResponse,
  CredentialSetListParams,
  CredentialSetListResponse,
  CredentialSetListResponsesV4PagePaginationArray,
  CredentialSetUpdateParams,
  CredentialSetUpdateResponse,
  CredentialSets,
} from './credential-sets/credential-sets';

export class VulnerabilityScanner extends APIResource {
  credentialSets: CredentialSetsAPI.CredentialSets = new CredentialSetsAPI.CredentialSets(this._client);
  scans: ScansAPI.Scans = new ScansAPI.Scans(this._client);
  targetEnvironments: TargetEnvironmentsAPI.TargetEnvironments = new TargetEnvironmentsAPI.TargetEnvironments(
    this._client,
  );
}

VulnerabilityScanner.CredentialSets = CredentialSets;
VulnerabilityScanner.CredentialSetListResponsesV4PagePaginationArray =
  CredentialSetListResponsesV4PagePaginationArray;
VulnerabilityScanner.Scans = Scans;
VulnerabilityScanner.ScanListResponsesV4PagePaginationArray = ScanListResponsesV4PagePaginationArray;
VulnerabilityScanner.TargetEnvironments = TargetEnvironments;
VulnerabilityScanner.TargetEnvironmentListResponsesV4PagePaginationArray =
  TargetEnvironmentListResponsesV4PagePaginationArray;

export declare namespace VulnerabilityScanner {
  export {
    CredentialSets as CredentialSets,
    type CredentialSetCreateResponse as CredentialSetCreateResponse,
    type CredentialSetUpdateResponse as CredentialSetUpdateResponse,
    type CredentialSetListResponse as CredentialSetListResponse,
    type CredentialSetDeleteResponse as CredentialSetDeleteResponse,
    type CredentialSetEditResponse as CredentialSetEditResponse,
    type CredentialSetGetResponse as CredentialSetGetResponse,
    CredentialSetListResponsesV4PagePaginationArray as CredentialSetListResponsesV4PagePaginationArray,
    type CredentialSetCreateParams as CredentialSetCreateParams,
    type CredentialSetUpdateParams as CredentialSetUpdateParams,
    type CredentialSetListParams as CredentialSetListParams,
    type CredentialSetDeleteParams as CredentialSetDeleteParams,
    type CredentialSetEditParams as CredentialSetEditParams,
    type CredentialSetGetParams as CredentialSetGetParams,
  };

  export {
    Scans as Scans,
    type ScanCreateResponse as ScanCreateResponse,
    type ScanListResponse as ScanListResponse,
    type ScanGetResponse as ScanGetResponse,
    ScanListResponsesV4PagePaginationArray as ScanListResponsesV4PagePaginationArray,
    type ScanCreateParams as ScanCreateParams,
    type ScanListParams as ScanListParams,
    type ScanGetParams as ScanGetParams,
  };

  export {
    TargetEnvironments as TargetEnvironments,
    type TargetEnvironmentCreateResponse as TargetEnvironmentCreateResponse,
    type TargetEnvironmentUpdateResponse as TargetEnvironmentUpdateResponse,
    type TargetEnvironmentListResponse as TargetEnvironmentListResponse,
    type TargetEnvironmentDeleteResponse as TargetEnvironmentDeleteResponse,
    type TargetEnvironmentEditResponse as TargetEnvironmentEditResponse,
    type TargetEnvironmentGetResponse as TargetEnvironmentGetResponse,
    TargetEnvironmentListResponsesV4PagePaginationArray as TargetEnvironmentListResponsesV4PagePaginationArray,
    type TargetEnvironmentCreateParams as TargetEnvironmentCreateParams,
    type TargetEnvironmentUpdateParams as TargetEnvironmentUpdateParams,
    type TargetEnvironmentListParams as TargetEnvironmentListParams,
    type TargetEnvironmentDeleteParams as TargetEnvironmentDeleteParams,
    type TargetEnvironmentEditParams as TargetEnvironmentEditParams,
    type TargetEnvironmentGetParams as TargetEnvironmentGetParams,
  };
}
