ibm-security-advisor
Version:
Client library to use the IBM Security Advisor
860 lines • 40.7 kB
JavaScript
"use strict";
/**
* (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.
*/
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var extend = require("extend");
var ibm_cloud_sdk_core_1 = require("ibm-cloud-sdk-core");
var common_1 = require("../lib/common");
/**
* The Findings API
*/
var FindingsApiV1 = /** @class */ (function (_super) {
__extends(FindingsApiV1, _super);
/**
* 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}
*/
function FindingsApiV1(options) {
var _this = _super.call(this, options) || this;
if (options.serviceUrl) {
_this.setServiceUrl(options.serviceUrl);
}
else {
_this.setServiceUrl(FindingsApiV1.DEFAULT_SERVICE_URL);
}
return _this;
}
/*************************
* 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}
*/
FindingsApiV1.newInstance = function (options) {
if (!options.serviceName) {
options.serviceName = this.DEFAULT_SERVICE_NAME;
}
if (!options.authenticator) {
options.authenticator = ibm_cloud_sdk_core_1.getAuthenticatorFromEnvironment(options.serviceName);
}
var service = new FindingsApiV1(options);
service.configureService(options.serviceName);
if (options.serviceUrl) {
service.setServiceUrl(options.serviceUrl);
}
return service;
};
/*************************
* 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>>}
*/
FindingsApiV1.prototype.postGraph = function (params) {
var _this = this;
var _params = extend({}, params);
var requiredParams = ['accountId', 'body'];
return new Promise(function (resolve, reject) {
var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams);
if (missingParams) {
return reject(missingParams);
}
var body = _params.body;
var path = {
account_id: _params.accountId,
};
var sdkHeaders = common_1.getSdkHeaders(FindingsApiV1.DEFAULT_SERVICE_NAME, 'v1', 'postGraph');
var parameters = {
options: {
url: '/v1/{account_id}/graph',
method: 'POST',
body: body,
path: path,
},
defaultOptions: extend(true, {}, _this.baseOptions, {
headers: extend(true, sdkHeaders, {
Accept: 'application/json',
'Content-Type': _params.contentType,
}, _params.headers),
}),
};
return resolve(_this.createRequest(parameters));
});
};
/*************************
* 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>>}
*/
FindingsApiV1.prototype.createNote = function (params) {
var _this = this;
var _params = extend({}, params);
var requiredParams = [
'accountId',
'providerId',
'shortDescription',
'longDescription',
'kind',
'id',
'reportedBy',
];
return new Promise(function (resolve, reject) {
var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams);
if (missingParams) {
return reject(missingParams);
}
var body = {
short_description: _params.shortDescription,
long_description: _params.longDescription,
kind: _params.kind,
id: _params.id,
reported_by: _params.reportedBy,
related_url: _params.relatedUrl,
expiration_time: _params.expirationTime,
create_time: _params.createTime,
update_time: _params.updateTime,
shared: _params.shared,
finding: _params.finding,
kpi: _params.kpi,
card: _params.card,
section: _params.section,
};
var path = {
account_id: _params.accountId,
provider_id: _params.providerId,
};
var sdkHeaders = common_1.getSdkHeaders(FindingsApiV1.DEFAULT_SERVICE_NAME, 'v1', 'createNote');
var parameters = {
options: {
url: '/v1/{account_id}/providers/{provider_id}/notes',
method: 'POST',
body: body,
path: path,
},
defaultOptions: extend(true, {}, _this.baseOptions, {
headers: extend(true, sdkHeaders, {
Accept: 'application/json',
'Content-Type': 'application/json',
}, _params.headers),
}),
};
return resolve(_this.createRequest(parameters));
});
};
/**
* 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>>}
*/
FindingsApiV1.prototype.listNotes = function (params) {
var _this = this;
var _params = extend({}, params);
var requiredParams = ['accountId', 'providerId'];
return new Promise(function (resolve, reject) {
var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams);
if (missingParams) {
return reject(missingParams);
}
var query = {
page_size: _params.pageSize,
page_token: _params.pageToken,
};
var path = {
account_id: _params.accountId,
provider_id: _params.providerId,
};
var sdkHeaders = common_1.getSdkHeaders(FindingsApiV1.DEFAULT_SERVICE_NAME, 'v1', 'listNotes');
var parameters = {
options: {
url: '/v1/{account_id}/providers/{provider_id}/notes',
method: 'GET',
qs: query,
path: path,
},
defaultOptions: extend(true, {}, _this.baseOptions, {
headers: extend(true, sdkHeaders, {
Accept: 'application/json',
}, _params.headers),
}),
};
return resolve(_this.createRequest(parameters));
});
};
/**
* 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>>}
*/
FindingsApiV1.prototype.getNote = function (params) {
var _this = this;
var _params = extend({}, params);
var requiredParams = ['accountId', 'providerId', 'noteId'];
return new Promise(function (resolve, reject) {
var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams);
if (missingParams) {
return reject(missingParams);
}
var path = {
account_id: _params.accountId,
provider_id: _params.providerId,
note_id: _params.noteId,
};
var sdkHeaders = common_1.getSdkHeaders(FindingsApiV1.DEFAULT_SERVICE_NAME, 'v1', 'getNote');
var parameters = {
options: {
url: '/v1/{account_id}/providers/{provider_id}/notes/{note_id}',
method: 'GET',
path: path,
},
defaultOptions: extend(true, {}, _this.baseOptions, {
headers: extend(true, sdkHeaders, {
Accept: 'application/json',
}, _params.headers),
}),
};
return resolve(_this.createRequest(parameters));
});
};
/**
* 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>>}
*/
FindingsApiV1.prototype.updateNote = function (params) {
var _this = this;
var _params = extend({}, params);
var requiredParams = [
'accountId',
'providerId',
'noteId',
'shortDescription',
'longDescription',
'kind',
'id',
'reportedBy',
];
return new Promise(function (resolve, reject) {
var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams);
if (missingParams) {
return reject(missingParams);
}
var body = {
short_description: _params.shortDescription,
long_description: _params.longDescription,
kind: _params.kind,
id: _params.id,
reported_by: _params.reportedBy,
related_url: _params.relatedUrl,
expiration_time: _params.expirationTime,
create_time: _params.createTime,
update_time: _params.updateTime,
shared: _params.shared,
finding: _params.finding,
kpi: _params.kpi,
card: _params.card,
section: _params.section,
};
var path = {
account_id: _params.accountId,
provider_id: _params.providerId,
note_id: _params.noteId,
};
var sdkHeaders = common_1.getSdkHeaders(FindingsApiV1.DEFAULT_SERVICE_NAME, 'v1', 'updateNote');
var parameters = {
options: {
url: '/v1/{account_id}/providers/{provider_id}/notes/{note_id}',
method: 'PUT',
body: body,
path: path,
},
defaultOptions: extend(true, {}, _this.baseOptions, {
headers: extend(true, sdkHeaders, {
Accept: 'application/json',
'Content-Type': 'application/json',
}, _params.headers),
}),
};
return resolve(_this.createRequest(parameters));
});
};
/**
* 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>>}
*/
FindingsApiV1.prototype.deleteNote = function (params) {
var _this = this;
var _params = extend({}, params);
var requiredParams = ['accountId', 'providerId', 'noteId'];
return new Promise(function (resolve, reject) {
var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams);
if (missingParams) {
return reject(missingParams);
}
var path = {
account_id: _params.accountId,
provider_id: _params.providerId,
note_id: _params.noteId,
};
var sdkHeaders = common_1.getSdkHeaders(FindingsApiV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteNote');
var parameters = {
options: {
url: '/v1/{account_id}/providers/{provider_id}/notes/{note_id}',
method: 'DELETE',
path: path,
},
defaultOptions: extend(true, {}, _this.baseOptions, {
headers: extend(true, sdkHeaders, {
Accept: 'application/json',
}, _params.headers),
}),
};
return resolve(_this.createRequest(parameters));
});
};
/**
* 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>>}
*/
FindingsApiV1.prototype.getOccurrenceNote = function (params) {
var _this = this;
var _params = extend({}, params);
var requiredParams = ['accountId', 'providerId', 'occurrenceId'];
return new Promise(function (resolve, reject) {
var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams);
if (missingParams) {
return reject(missingParams);
}
var path = {
account_id: _params.accountId,
provider_id: _params.providerId,
occurrence_id: _params.occurrenceId,
};
var sdkHeaders = common_1.getSdkHeaders(FindingsApiV1.DEFAULT_SERVICE_NAME, 'v1', 'getOccurrenceNote');
var parameters = {
options: {
url: '/v1/{account_id}/providers/{provider_id}/occurrences/{occurrence_id}/note',
method: 'GET',
path: path,
},
defaultOptions: extend(true, {}, _this.baseOptions, {
headers: extend(true, sdkHeaders, {
Accept: 'application/json',
}, _params.headers),
}),
};
return resolve(_this.createRequest(parameters));
});
};
/*************************
* 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>>}
*/
FindingsApiV1.prototype.createOccurrence = function (params) {
var _this = this;
var _params = extend({}, params);
var requiredParams = ['accountId', 'providerId', 'noteName', 'kind', 'id'];
return new Promise(function (resolve, reject) {
var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams);
if (missingParams) {
return reject(missingParams);
}
var body = {
note_name: _params.noteName,
kind: _params.kind,
id: _params.id,
resource_url: _params.resourceUrl,
remediation: _params.remediation,
create_time: _params.createTime,
update_time: _params.updateTime,
context: _params.context,
finding: _params.finding,
kpi: _params.kpi,
};
var path = {
account_id: _params.accountId,
provider_id: _params.providerId,
};
var sdkHeaders = common_1.getSdkHeaders(FindingsApiV1.DEFAULT_SERVICE_NAME, 'v1', 'createOccurrence');
var parameters = {
options: {
url: '/v1/{account_id}/providers/{provider_id}/occurrences',
method: 'POST',
body: body,
path: path,
},
defaultOptions: extend(true, {}, _this.baseOptions, {
headers: extend(true, sdkHeaders, {
Accept: 'application/json',
'Content-Type': 'application/json',
'Replace-If-Exists': _params.replaceIfExists,
}, _params.headers),
}),
};
return resolve(_this.createRequest(parameters));
});
};
/**
* 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>>}
*/
FindingsApiV1.prototype.listOccurrences = function (params) {
var _this = this;
var _params = extend({}, params);
var requiredParams = ['accountId', 'providerId'];
return new Promise(function (resolve, reject) {
var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams);
if (missingParams) {
return reject(missingParams);
}
var query = {
page_size: _params.pageSize,
page_token: _params.pageToken,
};
var path = {
account_id: _params.accountId,
provider_id: _params.providerId,
};
var sdkHeaders = common_1.getSdkHeaders(FindingsApiV1.DEFAULT_SERVICE_NAME, 'v1', 'listOccurrences');
var parameters = {
options: {
url: '/v1/{account_id}/providers/{provider_id}/occurrences',
method: 'GET',
qs: query,
path: path,
},
defaultOptions: extend(true, {}, _this.baseOptions, {
headers: extend(true, sdkHeaders, {
Accept: 'application/json',
}, _params.headers),
}),
};
return resolve(_this.createRequest(parameters));
});
};
/**
* 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>>}
*/
FindingsApiV1.prototype.listNoteOccurrences = function (params) {
var _this = this;
var _params = extend({}, params);
var requiredParams = ['accountId', 'providerId', 'noteId'];
return new Promise(function (resolve, reject) {
var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams);
if (missingParams) {
return reject(missingParams);
}
var query = {
page_size: _params.pageSize,
page_token: _params.pageToken,
};
var path = {
account_id: _params.accountId,
provider_id: _params.providerId,
note_id: _params.noteId,
};
var sdkHeaders = common_1.getSdkHeaders(FindingsApiV1.DEFAULT_SERVICE_NAME, 'v1', 'listNoteOccurrences');
var parameters = {
options: {
url: '/v1/{account_id}/providers/{provider_id}/notes/{note_id}/occurrences',
method: 'GET',
qs: query,
path: path,
},
defaultOptions: extend(true, {}, _this.baseOptions, {
headers: extend(true, sdkHeaders, {
Accept: 'application/json',
}, _params.headers),
}),
};
return resolve(_this.createRequest(parameters));
});
};
/**
* 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>>}
*/
FindingsApiV1.prototype.getOccurrence = function (params) {
var _this = this;
var _params = extend({}, params);
var requiredParams = ['accountId', 'providerId', 'occurrenceId'];
return new Promise(function (resolve, reject) {
var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams);
if (missingParams) {
return reject(missingParams);
}
var path = {
account_id: _params.accountId,
provider_id: _params.providerId,
occurrence_id: _params.occurrenceId,
};
var sdkHeaders = common_1.getSdkHeaders(FindingsApiV1.DEFAULT_SERVICE_NAME, 'v1', 'getOccurrence');
var parameters = {
options: {
url: '/v1/{account_id}/providers/{provider_id}/occurrences/{occurrence_id}',
method: 'GET',
path: path,
},
defaultOptions: extend(true, {}, _this.baseOptions, {
headers: extend(true, sdkHeaders, {
Accept: 'application/json',
}, _params.headers),
}),
};
return resolve(_this.createRequest(parameters));
});
};
/**
* 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>>}
*/
FindingsApiV1.prototype.updateOccurrence = function (params) {
var _this = this;
var _params = extend({}, params);
var requiredParams = ['accountId', 'providerId', 'occurrenceId', 'noteName', 'kind', 'id'];
return new Promise(function (resolve, reject) {
var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams);
if (missingParams) {
return reject(missingParams);
}
var body = {
note_name: _params.noteName,
kind: _params.kind,
id: _params.id,
resource_url: _params.resourceUrl,
remediation: _params.remediation,
create_time: _params.createTime,
update_time: _params.updateTime,
context: _params.context,
finding: _params.finding,
kpi: _params.kpi,
};
var path = {
account_id: _params.accountId,
provider_id: _params.providerId,
occurrence_id: _params.occurrenceId,
};
var sdkHeaders = common_1.getSdkHeaders(FindingsApiV1.DEFAULT_SERVICE_NAME, 'v1', 'updateOccurrence');
var parameters = {
options: {
url: '/v1/{account_id}/providers/{provider_id}/occurrences/{occurrence_id}',
method: 'PUT',
body: body,
path: path,
},
defaultOptions: extend(true, {}, _this.baseOptions, {
headers: extend(true, sdkHeaders, {
Accept: 'application/json',
'Content-Type': 'application/json',
}, _params.headers),
}),
};
return resolve(_this.createRequest(parameters));
});
};
/**
* 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>>}
*/
FindingsApiV1.prototype.deleteOccurrence = function (params) {
var _this = this;
var _params = extend({}, params);
var requiredParams = ['accountId', 'providerId', 'occurrenceId'];
return new Promise(function (resolve, reject) {
var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams);
if (missingParams) {
return reject(missingParams);
}
var path = {
account_id: _params.accountId,
provider_id: _params.providerId,
occurrence_id: _params.occurrenceId,
};
var sdkHeaders = common_1.getSdkHeaders(FindingsApiV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteOccurrence');
var parameters = {
options: {
url: '/v1/{account_id}/providers/{provider_id}/occurrences/{occurrence_id}',
method: 'DELETE',
path: path,
},
defaultOptions: extend(true, {}, _this.baseOptions, {
headers: extend(true, sdkHeaders, {
Accept: 'application/json',
}, _params.headers),
}),
};
return resolve(_this.createRequest(parameters));
});
};
/*************************
* 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>>}
*/
FindingsApiV1.prototype.listProviders = function (params) {
var _this = this;
var _params = extend({}, params);
var requiredParams = ['accountId'];
return new Promise(function (resolve, reject) {
var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams);
if (missingParams) {
return reject(missingParams);
}
var query = {
limit: _params.limit,
skip: _params.skip,
start_provider_id: _params.startProviderId,
end_provider_id: _params.endProviderId,
};
var path = {
account_id: _params.accountId,
};
var sdkHeaders = common_1.getSdkHeaders(FindingsApiV1.DEFAULT_SERVICE_NAME, 'v1', 'listProviders');
var parameters = {
options: {
url: '/v1/{account_id}/providers',
method: 'GET',
qs: query,
path: path,
},
defaultOptions: extend(true, {}, _this.baseOptions, {
headers: extend(true, sdkHeaders, {
Accept: 'application/json',
}, _params.headers),
}),
};
return resolve(_this.createRequest(parameters));
});
};
FindingsApiV1.DEFAULT_SERVICE_URL = 'https://us-south.secadvisor.cloud.ibm.com/findings';
FindingsApiV1.DEFAULT_SERVICE_NAME = 'findings-api';
return FindingsApiV1;
}(ibm_cloud_sdk_core_1.BaseService));
/*************************
* interfaces
************************/
(function (FindingsApiV1) {
/** Constants for the `postGraph` operation. */
var PostGraphConstants;
(function (PostGraphConstants) {
/** The type of the input. */
var ContentType;
(function (ContentType) {
ContentType["APPLICATION_GRAPHQL"] = "application/graphql";
ContentType["APPLICATION_JSON"] = "application/json";
})(ContentType = PostGraphConstants.ContentType || (PostGraphConstants.ContentType = {}));
})(PostGraphConstants = FindingsApiV1.PostGraphConstants || (FindingsApiV1.PostGraphConstants = {}));
})(FindingsApiV1 || (FindingsApiV1 = {}));
module.exports = FindingsApiV1;
//# sourceMappingURL=v1.js.map