UNPKG

ibm-security-advisor

Version:
878 lines (877 loc) 43.3 kB
/** * (C) Copyright IBM Corp. 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /// <reference types="node" /> import { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http'; import { BaseService, UserOptions } from 'ibm-cloud-sdk-core'; /** * The Findings API */ declare class FindingsApiV1 extends BaseService { static DEFAULT_SERVICE_URL: string; static DEFAULT_SERVICE_NAME: string; /************************* * Factory method ************************/ /** * Constructs an instance of FindingsApiV1 with passed in options and external configuration. * * @param {UserOptions} [options] - The parameters to send to the service. * @param {string} [options.serviceName] - The name of the service to configure * @param {Authenticator} [options.authenticator] - The Authenticator object used to authenticate requests to the service * @param {string} [options.serviceUrl] - The URL for the service * @returns {FindingsApiV1} */ static newInstance(options: UserOptions): FindingsApiV1; /** * Construct a FindingsApiV1 object. * * @param {Object} options - Options for the service. * @param {string} [options.serviceUrl] - The base url to use when contacting the service (e.g. 'https://us-south.secadvisor.cloud.ibm.com/findings'). The base url may differ between IBM Cloud regions. * @param {OutgoingHttpHeaders} [options.headers] - Default headers that shall be included with every request to the service. * @param {Authenticator} options.authenticator - The Authenticator object used to authenticate requests to the service * @constructor * @returns {FindingsApiV1} */ constructor(options: UserOptions); /************************* * findingsGraph ************************/ /** * query findings. * * query findings. * * @param {Object} params - The parameters to send to the service. * @param {string} params.accountId - Account ID. * @param {string} params.body - Body for query findings. * @param {string} [params.contentType] - The type of the input. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<FindingsApiV1.Response<FindingsApiV1.Empty>>} */ postGraph(params: FindingsApiV1.PostGraphParams): Promise<FindingsApiV1.Response<FindingsApiV1.Empty>>; /************************* * findingsNotes ************************/ /** * Creates a new `Note`. * * @param {Object} params - The parameters to send to the service. * @param {string} params.accountId - Account ID. * @param {string} params.providerId - Part of `parent`. This field contains the provider_id for example: * providers/{provider_id}. * @param {string} params.shortDescription - A one sentence description of this `Note`. * @param {string} params.longDescription - A detailed description of this `Note`. * @param {ApiNoteKind} params.kind - Output only. This explicitly denotes which kind of note is specified. This * field can be used as a filter in list requests. * @param {string} params.id - * @param {Reporter} params.reportedBy - Details about the reporter of this `Note`. * @param {ApiNoteRelatedUrl[]} [params.relatedUrl] - * @param {string} [params.expirationTime] - Time of expiration for this note, null if note does not expire. * @param {string} [params.createTime] - Output only. The time this note was created. This field can be used as a * filter in list requests. * @param {string} [params.updateTime] - Output only. The time this note was last updated. This field can be used as a * filter in list requests. * @param {boolean} [params.shared] - True if this `Note` can be shared by multiple accounts. * @param {FindingType} [params.finding] - The finding details of the note. * @param {KpiType} [params.kpi] - The KPI details of the note. * @param {Card} [params.card] - The card details of the note. * @param {Section} [params.section] - The section details of the note. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<FindingsApiV1.Response<FindingsApiV1.ApiNote>>} */ createNote(params: FindingsApiV1.CreateNoteParams): Promise<FindingsApiV1.Response<FindingsApiV1.ApiNote>>; /** * Lists all `Notes` for a given provider. * * @param {Object} params - The parameters to send to the service. * @param {string} params.accountId - Account ID. * @param {string} params.providerId - Part of `parent`. This field contains the provider_id for example: * providers/{provider_id}. * @param {number} [params.pageSize] - Number of notes to return in the list. * @param {string} [params.pageToken] - Token to provide to skip to a particular spot in the list. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<FindingsApiV1.Response<FindingsApiV1.ApiListNotesResponse>>} */ listNotes(params: FindingsApiV1.ListNotesParams): Promise<FindingsApiV1.Response<FindingsApiV1.ApiListNotesResponse>>; /** * Returns the requested `Note`. * * @param {Object} params - The parameters to send to the service. * @param {string} params.accountId - Account ID. * @param {string} params.providerId - First part of note `name`: providers/{provider_id}/notes/{note_id}. * @param {string} params.noteId - Second part of note `name`: providers/{provider_id}/notes/{note_id}. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<FindingsApiV1.Response<FindingsApiV1.ApiNote>>} */ getNote(params: FindingsApiV1.GetNoteParams): Promise<FindingsApiV1.Response<FindingsApiV1.ApiNote>>; /** * Updates an existing `Note`. * * @param {Object} params - The parameters to send to the service. * @param {string} params.accountId - Account ID. * @param {string} params.providerId - First part of note `name`: providers/{provider_id}/notes/{note_id}. * @param {string} params.noteId - Second part of note `name`: providers/{provider_id}/notes/{note_id}. * @param {string} params.shortDescription - A one sentence description of this `Note`. * @param {string} params.longDescription - A detailed description of this `Note`. * @param {ApiNoteKind} params.kind - Output only. This explicitly denotes which kind of note is specified. This * field can be used as a filter in list requests. * @param {string} params.id - * @param {Reporter} params.reportedBy - Details about the reporter of this `Note`. * @param {ApiNoteRelatedUrl[]} [params.relatedUrl] - * @param {string} [params.expirationTime] - Time of expiration for this note, null if note does not expire. * @param {string} [params.createTime] - Output only. The time this note was created. This field can be used as a * filter in list requests. * @param {string} [params.updateTime] - Output only. The time this note was last updated. This field can be used as a * filter in list requests. * @param {boolean} [params.shared] - True if this `Note` can be shared by multiple accounts. * @param {FindingType} [params.finding] - The finding details of the note. * @param {KpiType} [params.kpi] - The KPI details of the note. * @param {Card} [params.card] - The card details of the note. * @param {Section} [params.section] - The section details of the note. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<FindingsApiV1.Response<FindingsApiV1.ApiNote>>} */ updateNote(params: FindingsApiV1.UpdateNoteParams): Promise<FindingsApiV1.Response<FindingsApiV1.ApiNote>>; /** * Deletes the given `Note` from the system. * * @param {Object} params - The parameters to send to the service. * @param {string} params.accountId - Account ID. * @param {string} params.providerId - First part of note `name`: providers/{provider_id}/notes/{note_id}. * @param {string} params.noteId - Second part of note `name`: providers/{provider_id}/notes/{note_id}. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<FindingsApiV1.Response<FindingsApiV1.Empty>>} */ deleteNote(params: FindingsApiV1.DeleteNoteParams): Promise<FindingsApiV1.Response<FindingsApiV1.Empty>>; /** * Gets the `Note` attached to the given `Occurrence`. * * @param {Object} params - The parameters to send to the service. * @param {string} params.accountId - Account ID. * @param {string} params.providerId - First part of occurrence `name`: * providers/{provider_id}/occurrences/{occurrence_id}. * @param {string} params.occurrenceId - Second part of occurrence `name`: * providers/{provider_id}/occurrences/{occurrence_id}. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<FindingsApiV1.Response<FindingsApiV1.ApiNote>>} */ getOccurrenceNote(params: FindingsApiV1.GetOccurrenceNoteParams): Promise<FindingsApiV1.Response<FindingsApiV1.ApiNote>>; /************************* * findingsOccurrences ************************/ /** * Creates a new `Occurrence`. Use this method to create `Occurrences` for a resource. * * @param {Object} params - The parameters to send to the service. * @param {string} params.accountId - Account ID. * @param {string} params.providerId - Part of `parent`. This contains the provider_id for example: * providers/{provider_id}. * @param {string} params.noteName - An analysis note associated with this image, in the form * "{account_id}/providers/{provider_id}/notes/{note_id}" This field can be used as a filter in list requests. * @param {ApiNoteKind} params.kind - Output only. This explicitly denotes which of the `Occurrence` details are * specified. * This field can be used as a filter in list requests. * @param {string} params.id - * @param {string} [params.resourceUrl] - The unique URL of the resource, image or the container, for which the * `Occurrence` applies. For example, https://gcr.io/provider/image@sha256:foo. This field can be used as a filter in * list requests. * @param {string} [params.remediation] - * @param {string} [params.createTime] - Output only. The time this `Occurrence` was created. * @param {string} [params.updateTime] - Output only. The time this `Occurrence` was last updated. * @param {Context} [params.context] - Details about the context of this `Occurrence`. * @param {Finding} [params.finding] - Details of the occurrence of a finding. * @param {Kpi} [params.kpi] - Details of the occurrence of a KPI. * @param {boolean} [params.replaceIfExists] - It allows replacing an existing occurrence when set to true. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<FindingsApiV1.Response<FindingsApiV1.ApiOccurrence>>} */ createOccurrence(params: FindingsApiV1.CreateOccurrenceParams): Promise<FindingsApiV1.Response<FindingsApiV1.ApiOccurrence>>; /** * Lists active `Occurrences` for a given provider matching the filters. * * @param {Object} params - The parameters to send to the service. * @param {string} params.accountId - Account ID. * @param {string} params.providerId - Part of `parent`. This contains the provider_id for example: * providers/{provider_id}. * @param {number} [params.pageSize] - Number of occurrences to return in the list. * @param {string} [params.pageToken] - Token to provide to skip to a particular spot in the list. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<FindingsApiV1.Response<FindingsApiV1.ApiListOccurrencesResponse>>} */ listOccurrences(params: FindingsApiV1.ListOccurrencesParams): Promise<FindingsApiV1.Response<FindingsApiV1.ApiListOccurrencesResponse>>; /** * Lists `Occurrences` referencing the specified `Note`. Use this method to get all occurrences referencing your `Note` across all your customer providers. * * @param {Object} params - The parameters to send to the service. * @param {string} params.accountId - Account ID. * @param {string} params.providerId - First part of note `name`: providers/{provider_id}/notes/{note_id}. * @param {string} params.noteId - Second part of note `name`: providers/{provider_id}/notes/{note_id}. * @param {number} [params.pageSize] - Number of notes to return in the list. * @param {string} [params.pageToken] - Token to provide to skip to a particular spot in the list. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<FindingsApiV1.Response<FindingsApiV1.ApiListNoteOccurrencesResponse>>} */ listNoteOccurrences(params: FindingsApiV1.ListNoteOccurrencesParams): Promise<FindingsApiV1.Response<FindingsApiV1.ApiListNoteOccurrencesResponse>>; /** * Returns the requested `Occurrence`. * * @param {Object} params - The parameters to send to the service. * @param {string} params.accountId - Account ID. * @param {string} params.providerId - First part of occurrence `name`: * providers/{provider_id}/occurrences/{occurrence_id}. * @param {string} params.occurrenceId - Second part of occurrence `name`: * providers/{provider_id}/occurrences/{occurrence_id}. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<FindingsApiV1.Response<FindingsApiV1.ApiListOccurrencesResponse>>} */ getOccurrence(params: FindingsApiV1.GetOccurrenceParams): Promise<FindingsApiV1.Response<FindingsApiV1.ApiListOccurrencesResponse>>; /** * Updates an existing `Occurrence`. * * @param {Object} params - The parameters to send to the service. * @param {string} params.accountId - Account ID. * @param {string} params.providerId - First part of occurrence `name`: * providers/{provider_id}/occurrences/{occurrence_id}. * @param {string} params.occurrenceId - Second part of occurrence `name`: * providers/{provider_id}/occurrences/{occurrence_id}. * @param {string} params.noteName - An analysis note associated with this image, in the form * "{account_id}/providers/{provider_id}/notes/{note_id}" This field can be used as a filter in list requests. * @param {ApiNoteKind} params.kind - Output only. This explicitly denotes which of the `Occurrence` details are * specified. * This field can be used as a filter in list requests. * @param {string} params.id - * @param {string} [params.resourceUrl] - The unique URL of the resource, image or the container, for which the * `Occurrence` applies. For example, https://gcr.io/provider/image@sha256:foo. This field can be used as a filter in * list requests. * @param {string} [params.remediation] - * @param {string} [params.createTime] - Output only. The time this `Occurrence` was created. * @param {string} [params.updateTime] - Output only. The time this `Occurrence` was last updated. * @param {Context} [params.context] - Details about the context of this `Occurrence`. * @param {Finding} [params.finding] - Details of the occurrence of a finding. * @param {Kpi} [params.kpi] - Details of the occurrence of a KPI. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<FindingsApiV1.Response<FindingsApiV1.ApiOccurrence>>} */ updateOccurrence(params: FindingsApiV1.UpdateOccurrenceParams): Promise<FindingsApiV1.Response<FindingsApiV1.ApiOccurrence>>; /** * Deletes the given `Occurrence` from the system. * * @param {Object} params - The parameters to send to the service. * @param {string} params.accountId - Account ID. * @param {string} params.providerId - First part of occurrence `name`: providers/{provider_id}/notes/{occurrence_id}. * @param {string} params.occurrenceId - Second part of occurrence `name`: * providers/{provider_id}/notes/{occurrence_id}. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<FindingsApiV1.Response<FindingsApiV1.Empty>>} */ deleteOccurrence(params: FindingsApiV1.DeleteOccurrenceParams): Promise<FindingsApiV1.Response<FindingsApiV1.Empty>>; /************************* * findingsProviders ************************/ /** * Lists all `Providers` for a given account id. * * @param {Object} params - The parameters to send to the service. * @param {string} params.accountId - Account ID. * @param {number} [params.limit] - Limit the number of the returned documents to the specified number. * @param {number} [params.skip] - The offset is the index of the item from which you want to start returning data * from. Default is 0. * @param {string} [params.startProviderId] - The first provider_id to include in the result (sorted in ascending * order). Ignored if not provided. * @param {string} [params.endProviderId] - The last provider_id to include in the result (sorted in ascending order). * Ignored if not provided. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<FindingsApiV1.Response<FindingsApiV1.ApiListProvidersResponse>>} */ listProviders(params: FindingsApiV1.ListProvidersParams): Promise<FindingsApiV1.Response<FindingsApiV1.ApiListProvidersResponse>>; } /************************* * interfaces ************************/ declare namespace FindingsApiV1 { /** An operation response. */ interface Response<T = any> { result: T; status: number; statusText: string; headers: IncomingHttpHeaders; } /** The callback for a service request. */ type Callback<T> = (error: any, response?: Response<T>) => void; /** The body of a service request that returns no response data. */ interface Empty { } /** A standard JS object, defined to avoid the limitations of `Object` and `object` */ interface JsonObject { [key: string]: any; } /************************* * request interfaces ************************/ /** Parameters for the `postGraph` operation. */ interface PostGraphParams { /** Account ID. */ accountId: string; /** Body for query findings. */ body: string; /** The type of the input. */ contentType?: PostGraphConstants.ContentType | string; headers?: OutgoingHttpHeaders; } /** Constants for the `postGraph` operation. */ namespace PostGraphConstants { /** The type of the input. */ enum ContentType { APPLICATION_GRAPHQL = "application/graphql", APPLICATION_JSON = "application/json" } } /** Parameters for the `createNote` operation. */ interface CreateNoteParams { /** Account ID. */ accountId: string; /** Part of `parent`. This field contains the provider_id for example: providers/{provider_id}. */ providerId: string; /** A one sentence description of this `Note`. */ shortDescription: string; /** A detailed description of this `Note`. */ longDescription: string; /** Output only. This explicitly denotes which kind of note is specified. This * field can be used as a filter in list requests. */ kind: ApiNoteKind; id: string; /** Details about the reporter of this `Note`. */ reportedBy: Reporter; relatedUrl?: ApiNoteRelatedUrl[]; /** Time of expiration for this note, null if note does not expire. */ expirationTime?: string; /** Output only. The time this note was created. This field can be used as a filter in list requests. */ createTime?: string; /** Output only. The time this note was last updated. This field can be used as a filter in list requests. */ updateTime?: string; /** True if this `Note` can be shared by multiple accounts. */ shared?: boolean; /** The finding details of the note. */ finding?: FindingType; /** The KPI details of the note. */ kpi?: KpiType; /** The card details of the note. */ card?: Card; /** The section details of the note. */ section?: Section; headers?: OutgoingHttpHeaders; } /** Parameters for the `listNotes` operation. */ interface ListNotesParams { /** Account ID. */ accountId: string; /** Part of `parent`. This field contains the provider_id for example: providers/{provider_id}. */ providerId: string; /** Number of notes to return in the list. */ pageSize?: number; /** Token to provide to skip to a particular spot in the list. */ pageToken?: string; headers?: OutgoingHttpHeaders; } /** Parameters for the `getNote` operation. */ interface GetNoteParams { /** Account ID. */ accountId: string; /** First part of note `name`: providers/{provider_id}/notes/{note_id}. */ providerId: string; /** Second part of note `name`: providers/{provider_id}/notes/{note_id}. */ noteId: string; headers?: OutgoingHttpHeaders; } /** Parameters for the `updateNote` operation. */ interface UpdateNoteParams { /** Account ID. */ accountId: string; /** First part of note `name`: providers/{provider_id}/notes/{note_id}. */ providerId: string; /** Second part of note `name`: providers/{provider_id}/notes/{note_id}. */ noteId: string; /** A one sentence description of this `Note`. */ shortDescription: string; /** A detailed description of this `Note`. */ longDescription: string; /** Output only. This explicitly denotes which kind of note is specified. This * field can be used as a filter in list requests. */ kind: ApiNoteKind; id: string; /** Details about the reporter of this `Note`. */ reportedBy: Reporter; relatedUrl?: ApiNoteRelatedUrl[]; /** Time of expiration for this note, null if note does not expire. */ expirationTime?: string; /** Output only. The time this note was created. This field can be used as a filter in list requests. */ createTime?: string; /** Output only. The time this note was last updated. This field can be used as a filter in list requests. */ updateTime?: string; /** True if this `Note` can be shared by multiple accounts. */ shared?: boolean; /** The finding details of the note. */ finding?: FindingType; /** The KPI details of the note. */ kpi?: KpiType; /** The card details of the note. */ card?: Card; /** The section details of the note. */ section?: Section; headers?: OutgoingHttpHeaders; } /** Parameters for the `deleteNote` operation. */ interface DeleteNoteParams { /** Account ID. */ accountId: string; /** First part of note `name`: providers/{provider_id}/notes/{note_id}. */ providerId: string; /** Second part of note `name`: providers/{provider_id}/notes/{note_id}. */ noteId: string; headers?: OutgoingHttpHeaders; } /** Parameters for the `getOccurrenceNote` operation. */ interface GetOccurrenceNoteParams { /** Account ID. */ accountId: string; /** First part of occurrence `name`: providers/{provider_id}/occurrences/{occurrence_id}. */ providerId: string; /** Second part of occurrence `name`: providers/{provider_id}/occurrences/{occurrence_id}. */ occurrenceId: string; headers?: OutgoingHttpHeaders; } /** Parameters for the `createOccurrence` operation. */ interface CreateOccurrenceParams { /** Account ID. */ accountId: string; /** Part of `parent`. This contains the provider_id for example: providers/{provider_id}. */ providerId: string; /** An analysis note associated with this image, in the form * "{account_id}/providers/{provider_id}/notes/{note_id}" This field can be used as a filter in list requests. */ noteName: string; /** Output only. This explicitly denotes which of the `Occurrence` details are specified. * This field can be used as a filter in list requests. */ kind: ApiNoteKind; id: string; /** The unique URL of the resource, image or the container, for which the `Occurrence` applies. For example, * https://gcr.io/provider/image@sha256:foo. This field can be used as a filter in list requests. */ resourceUrl?: string; remediation?: string; /** Output only. The time this `Occurrence` was created. */ createTime?: string; /** Output only. The time this `Occurrence` was last updated. */ updateTime?: string; /** Details about the context of this `Occurrence`. */ context?: Context; /** Details of the occurrence of a finding. */ finding?: Finding; /** Details of the occurrence of a KPI. */ kpi?: Kpi; /** It allows replacing an existing occurrence when set to true. */ replaceIfExists?: boolean; headers?: OutgoingHttpHeaders; } /** Parameters for the `listOccurrences` operation. */ interface ListOccurrencesParams { /** Account ID. */ accountId: string; /** Part of `parent`. This contains the provider_id for example: providers/{provider_id}. */ providerId: string; /** Number of occurrences to return in the list. */ pageSize?: number; /** Token to provide to skip to a particular spot in the list. */ pageToken?: string; headers?: OutgoingHttpHeaders; } /** Parameters for the `listNoteOccurrences` operation. */ interface ListNoteOccurrencesParams { /** Account ID. */ accountId: string; /** First part of note `name`: providers/{provider_id}/notes/{note_id}. */ providerId: string; /** Second part of note `name`: providers/{provider_id}/notes/{note_id}. */ noteId: string; /** Number of notes to return in the list. */ pageSize?: number; /** Token to provide to skip to a particular spot in the list. */ pageToken?: string; headers?: OutgoingHttpHeaders; } /** Parameters for the `getOccurrence` operation. */ interface GetOccurrenceParams { /** Account ID. */ accountId: string; /** First part of occurrence `name`: providers/{provider_id}/occurrences/{occurrence_id}. */ providerId: string; /** Second part of occurrence `name`: providers/{provider_id}/occurrences/{occurrence_id}. */ occurrenceId: string; headers?: OutgoingHttpHeaders; } /** Parameters for the `updateOccurrence` operation. */ interface UpdateOccurrenceParams { /** Account ID. */ accountId: string; /** First part of occurrence `name`: providers/{provider_id}/occurrences/{occurrence_id}. */ providerId: string; /** Second part of occurrence `name`: providers/{provider_id}/occurrences/{occurrence_id}. */ occurrenceId: string; /** An analysis note associated with this image, in the form * "{account_id}/providers/{provider_id}/notes/{note_id}" This field can be used as a filter in list requests. */ noteName: string; /** Output only. This explicitly denotes which of the `Occurrence` details are specified. * This field can be used as a filter in list requests. */ kind: ApiNoteKind; id: string; /** The unique URL of the resource, image or the container, for which the `Occurrence` applies. For example, * https://gcr.io/provider/image@sha256:foo. This field can be used as a filter in list requests. */ resourceUrl?: string; remediation?: string; /** Output only. The time this `Occurrence` was created. */ createTime?: string; /** Output only. The time this `Occurrence` was last updated. */ updateTime?: string; /** Details about the context of this `Occurrence`. */ context?: Context; /** Details of the occurrence of a finding. */ finding?: Finding; /** Details of the occurrence of a KPI. */ kpi?: Kpi; headers?: OutgoingHttpHeaders; } /** Parameters for the `deleteOccurrence` operation. */ interface DeleteOccurrenceParams { /** Account ID. */ accountId: string; /** First part of occurrence `name`: providers/{provider_id}/notes/{occurrence_id}. */ providerId: string; /** Second part of occurrence `name`: providers/{provider_id}/notes/{occurrence_id}. */ occurrenceId: string; headers?: OutgoingHttpHeaders; } /** Parameters for the `listProviders` operation. */ interface ListProvidersParams { /** Account ID. */ accountId: string; /** Limit the number of the returned documents to the specified number. */ limit?: number; /** The offset is the index of the item from which you want to start returning data from. Default is 0. */ skip?: number; /** The first provider_id to include in the result (sorted in ascending order). Ignored if not provided. */ startProviderId?: string; /** The last provider_id to include in the result (sorted in ascending order). Ignored if not provided. */ endProviderId?: string; headers?: OutgoingHttpHeaders; } /************************* * model interfaces ************************/ /** Card provides details about a card kind of note. */ interface Card { /** The section this card belongs to. */ section: string; /** The title of this card. */ title: string; /** The subtitle of this card. */ subtitle: string; /** The order of the card in which it will appear on SA dashboard in the mentioned section. */ order?: number; /** The finding note names associated to this card. */ finding_note_names: string[]; requires_configuration?: boolean; /** The text associated to the card's badge. */ badge_text?: string; /** The base64 content of the image associated to the card's badge. */ badge_image?: string; /** The elements of this card. */ elements: CardElement[]; } /** CardElement provides details about the elements of a Card. */ interface CardElement { /** Kind of element * - NUMERIC&#58; Single numeric value * - BREAKDOWN&#58; Breakdown of numeric values * - TIME_SERIES&#58; Time-series of numeric values. */ kind: string; /** The default time range of this card element. */ default_time_range?: string; } /** Note provider-assigned confidence on the validity of an occurrence - LOW&#58; Low Certainty - MEDIUM&#58; Medium Certainty - HIGH&#58; High Certainty. */ interface Certainty { } /** Context. */ interface Context { /** The IBM Cloud region. */ region?: string; /** The resource CRN (e.g. certificate CRN, image CRN). */ resource_crn?: string; /** The resource ID, in case the CRN is not available. */ resource_id?: string; /** The user-friendly resource name. */ resource_name?: string; /** The resource type name (e.g. Pod, Cluster, Certificate, Image). */ resource_type?: string; /** The service CRN (e.g. CertMgr Instance CRN). */ service_crn?: string; /** The service name (e.g. CertMgr). */ service_name?: string; /** The name of the environment the occurrence applies to. */ environment_name?: string; /** The name of the component the occurrence applies to. */ component_name?: string; /** The id of the toolchain the occurrence applies to. */ toolchain_id?: string; } /** It provides details about data transferred between clients and servers. */ interface DataTransferred { /** The number of client bytes transferred. */ client_bytes?: number; /** The number of server bytes transferred. */ server_bytes?: number; /** The number of client packets transferred. */ client_packets?: number; /** The number of server packets transferred. */ server_packets?: number; } /** Finding provides details about a finding occurrence. */ interface Finding { /** The common severity of this `Occurrence`. */ severity?: Severity; /** The confidence level on this `Occurrence`. */ certainty?: Certainty; /** Remediation steps for the issues reported in this finding. They override the note's next steps. */ next_steps?: RemediationStep[]; /** Network connection details of this finding. */ network_connection?: NetworkConnection; /** Data transferred details of this finding. */ data_transferred?: DataTransferred; } /** FindingCountValueType. */ interface FindingCountValueType { /** Kind of element - FINDING_COUNT&#58; Kind of value derived from a count of finding occurrences. */ kind: string; /** the names of the finding note associated that act as filters for counting the occurrences. */ finding_note_names: string[]; /** The text of this element type. */ text: string; } /** FindingType provides details about a finding note. */ interface FindingType { /** The default severity of the findings related to this `Note`. */ severity: Severity; /** Common remediation steps for the finding of this type. */ next_steps?: RemediationStep[]; } /** Kpi provides details about a KPI occurrence. */ interface Kpi { /** The value of this KPI. */ value: number; /** The total value of this KPI. */ total?: number; } /** KpiType provides details about a KPI note. */ interface KpiType { /** The aggregation type of the KPI values. * - SUM&#58; A single-value metrics aggregation type that sums up numeric values * that are extracted from KPI occurrences. */ aggregation_type: string; } /** It provides details about a network connection. */ interface NetworkConnection { /** The direction of this network connection. */ direction?: string; /** The protocol of this network connection. */ protocol?: string; /** The client socket address of this network connection. */ client?: SocketAddress; /** The server socket address of this network connection. */ server?: SocketAddress; } /** A remediation step description and associated URL. */ interface RemediationStep { /** Title of this next step. */ title?: string; /** The URL associated to this next steps. */ url?: string; } /** The entity reporting a note. */ interface Reporter { /** The id of this reporter. */ id: string; /** The title of this reporter. */ title: string; /** The url of this reporter. */ url?: string; } /** Card provides details about a card kind of note. */ interface Section { /** The title of this section. */ title: string; /** The image of this section. */ image: string; } /** Note provider-assigned severity/impact ranking - LOW&#58; Low Impact - MEDIUM&#58; Medium Impact - HIGH&#58; High Impact - CRITICAL&#58; Critical Impact. */ interface Severity { } /** It provides details about a socket address. */ interface SocketAddress { /** The IP address of this socket address. */ address: string; /** The port number of this socket address. */ port?: number; } /** the value type of a card element. */ interface ValueType { /** Kind of element * - KPI&#58; Kind of value derived from a KPI occurrence * - FINDING_COUNT&#58; Kind of value derived from a count of finding occurrences. */ kind: string; /** The text of this element type. */ text: string; } /** Response including listed occurrences for a note. */ interface ApiListNoteOccurrencesResponse { /** The occurrences attached to the specified note. */ occurrences?: ApiOccurrence[]; /** Token to receive the next page of notes. */ next_page_token?: string; } /** Response including listed notes. */ interface ApiListNotesResponse { notes?: ApiNote[]; /** The next pagination token in the list response. It should be used as page_token for the following request. * An empty value means no more result. */ next_page_token?: string; } /** Response including listed active occurrences. */ interface ApiListOccurrencesResponse { /** The occurrences requested. */ occurrences?: ApiOccurrence[]; /** The next pagination token in the list response. It should be used as * `page_token` for the following request. An empty value means no more results. */ next_page_token?: string; } /** Response including listed providers. */ interface ApiListProvidersResponse { providers?: ApiProvider[]; } /** Provides a detailed description of a `Note`. */ interface ApiNote { /** A one sentence description of this `Note`. */ short_description: string; /** A detailed description of this `Note`. */ long_description: string; /** Output only. This explicitly denotes which kind of note is specified. This * field can be used as a filter in list requests. */ kind: ApiNoteKind; related_url?: ApiNoteRelatedUrl[]; /** Time of expiration for this note, null if note does not expire. */ expiration_time?: string; /** Output only. The time this note was created. This field can be used as a filter in list requests. */ create_time?: string; /** Output only. The time this note was last updated. This field can be used as a filter in list requests. */ update_time?: string; id: string; /** True if this `Note` can be shared by multiple accounts. */ shared?: boolean; /** Details about the reporter of this `Note`. */ reported_by: Reporter; /** The finding details of the note. */ finding?: FindingType; /** The KPI details of the note. */ kpi?: KpiType; /** The card details of the note. */ card?: Card; /** The section details of the note. */ section?: Section; } /** This must be 1&#58;1 with members of our oneofs, it can be used for filtering Note and Occurrence on their kind. - FINDING&#58; The note and occurrence represent a finding. - KPI&#58; The note and occurrence represent a KPI value. - CARD&#58; The note represents a card showing findings and related metric values. - CARD_CONFIGURED&#58; The note represents a card configured for a user account. - SECTION&#58; The note represents a section in a dashboard. */ interface ApiNoteKind { } /** Metadata for any related URL information. */ interface ApiNoteRelatedUrl { label?: string; url?: string; } /** `Occurrence` includes information about analysis occurrences for an image. */ interface ApiOccurrence { /** The unique URL of the resource, image or the container, for which the `Occurrence` applies. For example, * https://gcr.io/provider/image@sha256:foo. This field can be used as a filter in list requests. */ resource_url?: string; /** An analysis note associated with this image, in the form * "{account_id}/providers/{provider_id}/notes/{note_id}" This field can be used as a filter in list requests. */ note_name: string; /** Output only. This explicitly denotes which of the `Occurrence` details are specified. * This field can be used as a filter in list requests. */ kind: ApiNoteKind; remediation?: string; /** Output only. The time this `Occurrence` was created. */ create_time?: string; /** Output only. The time this `Occurrence` was last updated. */ update_time?: string; id: string; /** Details about the context of this `Occurrence`. */ context?: Context; /** Details of the occurrence of a finding. */ finding?: Finding; /** Details of the occurrence of a KPI. */ kpi?: Kpi; } /** Provides a detailed description of a `Provider`. */ interface ApiProvider { name: string; id: string; } /** A card element with a breakdown of values. */ interface BreakdownCardElement extends CardElement { /** The text of this card element. */ text: string; /** the value types associated to this card element. */ value_types: ValueType[]; } /** A card element with a single numeric value. */ interface NumericCardElement extends CardElement { /** The text of this card element. */ text: string; value_type: any; } /** A card element with a time series chart. */ interface TimeSeriesCardElement extends CardElement { /** The text of this card element. */ text: string; /** The default interval of the time series. */ default_interval?: string; /** the value types associated to this card element. */ value_types: FindingCountValueType[]; } } export = FindingsApiV1;