Search in sources :

Example 1 with GrafeasClient

use of io.grafeas.v1.GrafeasClient in project java-docs-samples by GoogleCloudPlatform.

the class CreateOccurrence method createOccurrence.

// Creates and returns a new vulnerability Occurrence associated with an existing Note
public static Occurrence createOccurrence(String resourceUrl, String noteId, String occProjectId, String noteProjectId) throws IOException, InterruptedException {
    // String resourceUrl = "https://gcr.io/project/image@sha256:123";
    // String noteId = "my-note";
    // String occProjectId = "my-project-id";
    // String noteProjectId = "my-project-id";
    final NoteName noteName = NoteName.of(noteProjectId, noteId);
    final String occProjectName = ProjectName.format(occProjectId);
    Occurrence newOcc = Occurrence.newBuilder().setNoteName(noteName.toString()).setResourceUri(resourceUrl).setVulnerability(VulnerabilityOccurrence.newBuilder().addPackageIssue(PackageIssue.newBuilder().setAffectedCpeUri("your-uri-here").setAffectedPackage("your-package-here").setAffectedVersion(Version.newBuilder().setKind(Version.VersionKind.MINIMUM)).setFixedVersion(Version.newBuilder().setKind(Version.VersionKind.MAXIMUM)))).build();
    // Initialize client that will be used to send requests. After completing all of your requests,
    // call the "close" method on the client to safely clean up any remaining background resources.
    GrafeasClient client = ContainerAnalysisClient.create().getGrafeasClient();
    Occurrence result = client.createOccurrence(occProjectName, newOcc);
    return result;
}
Also used : GrafeasClient(io.grafeas.v1.GrafeasClient) NoteName(io.grafeas.v1.NoteName) Occurrence(io.grafeas.v1.Occurrence) VulnerabilityOccurrence(io.grafeas.v1.VulnerabilityOccurrence)

Example 2 with GrafeasClient

use of io.grafeas.v1.GrafeasClient in project java-docs-samples by GoogleCloudPlatform.

the class DeleteOccurrence method deleteOccurrence.

// Deletes an existing Occurrence from the server
public static void deleteOccurrence(String occurrenceId, String projectId) throws IOException, InterruptedException {
    // String occurrenceId = "123-456-789";
    // String projectId = "my-project-id";
    final OccurrenceName occurrenceName = OccurrenceName.of(projectId, occurrenceId);
    // Initialize client that will be used to send requests. After completing all of your requests,
    // call the "close" method on the client to safely clean up any remaining background resources.
    GrafeasClient client = ContainerAnalysisClient.create().getGrafeasClient();
    client.deleteOccurrence(occurrenceName);
}
Also used : GrafeasClient(io.grafeas.v1.GrafeasClient) OccurrenceName(io.grafeas.v1.OccurrenceName)

Example 3 with GrafeasClient

use of io.grafeas.v1.GrafeasClient in project java-docs-samples by GoogleCloudPlatform.

the class GetNote method getNote.

// Retrieves and prints a specified Note from the server
public static Note getNote(String noteId, String projectId) throws IOException, InterruptedException {
    // String noteId = "my-note";
    // String projectId = "my-project-id";
    final NoteName noteName = NoteName.of(projectId, noteId);
    // Initialize client that will be used to send requests. After completing all of your requests,
    // call the "close" method on the client to safely clean up any remaining background resources.
    GrafeasClient client = ContainerAnalysisClient.create().getGrafeasClient();
    Note n = client.getNote(noteName);
    System.out.println(n);
    return n;
}
Also used : GrafeasClient(io.grafeas.v1.GrafeasClient) Note(io.grafeas.v1.Note) NoteName(io.grafeas.v1.NoteName)

Example 4 with GrafeasClient

use of io.grafeas.v1.GrafeasClient in project java-docs-samples by GoogleCloudPlatform.

the class HighVulnerabilitiesForImage method findHighSeverityVulnerabilitiesForImage.

// Retrieve a list of vulnerability occurrences with a severity level of 'HIGH' or greater
public static List<Occurrence> findHighSeverityVulnerabilitiesForImage(String resourceUrl, String projectId) throws IOException {
    // String resourceUrl = "https://gcr.io/project/image@sha256:123";
    // String projectId = "my-project-id";
    final String projectName = ProjectName.format(projectId);
    String filterStr = String.format("kind=\"VULNERABILITY\" AND resourceUrl=\"%s\"", resourceUrl);
    // Initialize client that will be used to send requests. After completing all of your requests,
    // call the "close" method on the client to safely clean up any remaining background resources.
    GrafeasClient client = ContainerAnalysisClient.create().getGrafeasClient();
    LinkedList<Occurrence> vulnerabilitylist = new LinkedList<Occurrence>();
    for (Occurrence o : client.listOccurrences(projectName, filterStr).iterateAll()) {
        Severity severity = o.getVulnerability().getEffectiveSeverity();
        if (severity == Severity.HIGH || severity == Severity.CRITICAL) {
            vulnerabilitylist.add(o);
        }
    }
    return vulnerabilitylist;
}
Also used : GrafeasClient(io.grafeas.v1.GrafeasClient) Severity(io.grafeas.v1.Severity) Occurrence(io.grafeas.v1.Occurrence) LinkedList(java.util.LinkedList)

Example 5 with GrafeasClient

use of io.grafeas.v1.GrafeasClient in project java-docs-samples by GoogleCloudPlatform.

the class OccurrencesForNote method getOccurrencesForNote.

// Retrieves all the Occurrences associated with a specified Note
// Here, all Occurrences are printed and counted
public static int getOccurrencesForNote(String noteId, String projectId) throws IOException, InterruptedException {
    // String noteId = "my-note";
    // String projectId = "my-project-id";
    final NoteName noteName = NoteName.of(projectId, noteId);
    ListNoteOccurrencesRequest request = ListNoteOccurrencesRequest.newBuilder().setName(noteName.toString()).build();
    // Initialize client that will be used to send requests. After completing all of your requests,
    // call the "close" method on the client to safely clean up any remaining background resources.
    GrafeasClient client = ContainerAnalysisClient.create().getGrafeasClient();
    int i = 0;
    for (Occurrence o : client.listNoteOccurrences(request).iterateAll()) {
        // Write custom code to process each Occurrence here
        System.out.println(o.getName());
        i = i + 1;
    }
    return i;
}
Also used : GrafeasClient(io.grafeas.v1.GrafeasClient) NoteName(io.grafeas.v1.NoteName) Occurrence(io.grafeas.v1.Occurrence) ListNoteOccurrencesRequest(io.grafeas.v1.ListNoteOccurrencesRequest)

Aggregations

GrafeasClient (io.grafeas.v1.GrafeasClient)14 Occurrence (io.grafeas.v1.Occurrence)9 NoteName (io.grafeas.v1.NoteName)5 Note (io.grafeas.v1.Note)3 DiscoveryOccurrence (io.grafeas.v1.DiscoveryOccurrence)2 AnalysisStatus (io.grafeas.v1.DiscoveryOccurrence.AnalysisStatus)2 OccurrenceName (io.grafeas.v1.OccurrenceName)2 VulnerabilityNote (io.grafeas.v1.VulnerabilityNote)2 VulnerabilityOccurrence (io.grafeas.v1.VulnerabilityOccurrence)2 LinkedList (java.util.LinkedList)2 TimeoutException (java.util.concurrent.TimeoutException)2 Test (org.junit.Test)2 DiscoveryNote (io.grafeas.v1.DiscoveryNote)1 GrafeasSettings (io.grafeas.v1.GrafeasSettings)1 ListNoteOccurrencesRequest (io.grafeas.v1.ListNoteOccurrencesRequest)1 Severity (io.grafeas.v1.Severity)1 Date (java.util.Date)1