Skip to content

Commit 74403d3

Browse files
Container analysis v1 (#1499)
updated container analysis samples for v1
1 parent 3439c96 commit 74403d3

File tree

14 files changed

+186
-141
lines changed

14 files changed

+186
-141
lines changed

container-registry/container-analysis/pom.xml

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,22 +31,43 @@
3131
<dependency>
3232
<groupId>com.google.cloud</groupId>
3333
<artifactId>google-cloud-containeranalysis</artifactId>
34-
<version>0.80.0-beta</version>
34+
<version>0.98.0-beta</version>
35+
</dependency>
36+
<dependency>
37+
<groupId>io.grafeas</groupId>
38+
<artifactId>grafeas</artifactId>
39+
<version>0.1.0</version>
3540
</dependency>
3641
<dependency>
3742
<groupId>com.google.cloud</groupId>
38-
<artifactId>google-cloud-pubsub</artifactId>
39-
<version>1.62.0</version>
43+
<artifactId>google-cloud-core</artifactId>
44+
<version>1.80.0</version>
4045
</dependency>
4146
<dependency>
42-
<groupId>com.google.api</groupId>
43-
<artifactId>gax</artifactId>
44-
<version>1.38.0</version>
47+
<groupId>com.google.cloud</groupId>
48+
<artifactId>google-cloud-core-grpc</artifactId>
49+
<version>1.80.0</version>
50+
</dependency>
51+
<dependency>
52+
<groupId>io.grpc</groupId>
53+
<artifactId>grpc-netty-shaded</artifactId>
54+
<version>1.21.0</version>
4555
</dependency>
4656
<dependency>
47-
<groupId>com.google.api</groupId>
48-
<artifactId>gax-grpc</artifactId>
49-
<version>1.38.0</version>
57+
<groupId>io.grpc</groupId>
58+
<artifactId>grpc-stub</artifactId>
59+
<version>1.21.0</version>
60+
</dependency>
61+
<dependency>
62+
<groupId>io.grpc</groupId>
63+
<artifactId>grpc-auth</artifactId>
64+
<version>1.21.0</version>
65+
</dependency>
66+
67+
<dependency>
68+
<groupId>com.google.cloud</groupId>
69+
<artifactId>google-cloud-pubsub</artifactId>
70+
<version>1.62.0</version>
5071
</dependency>
5172
<dependency>
5273
<groupId>commons-cli</groupId>

container-registry/container-analysis/src/main/java/com/example/containeranalysis/CreateNote.java

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@
1717
package com.example.containeranalysis;
1818

1919
// [START containeranalysis_create_note]
20-
import com.google.cloud.devtools.containeranalysis.v1beta1.GrafeasV1Beta1Client;
21-
import com.google.containeranalysis.v1beta1.ProjectName;
22-
import io.grafeas.v1beta1.Note;
23-
import io.grafeas.v1beta1.vulnerability.Severity;
24-
import io.grafeas.v1beta1.vulnerability.Vulnerability;
25-
import io.grafeas.v1beta1.vulnerability.Vulnerability.Detail;
20+
import com.google.cloud.devtools.containeranalysis.v1.ContainerAnalysisClient;
21+
import io.grafeas.v1.GrafeasClient;
22+
import io.grafeas.v1.Note;
23+
import io.grafeas.v1.ProjectName;
24+
import io.grafeas.v1.Version;
25+
import io.grafeas.v1.VulnerabilityNote;
2626
import java.io.IOException;
2727
import java.lang.InterruptedException;
2828

@@ -36,23 +36,24 @@ public static Note createNote(String noteId, String projectId)
3636
// String projectId = "my-project-id";
3737
final String projectName = ProjectName.format(projectId);
3838

39-
Note.Builder noteBuilder = Note.newBuilder();
40-
// Associate the Note with the metadata type
41-
// https://cloud.google.com/container-registry/docs/container-analysis#supported_metadata_types
42-
// Here, we use the type "vulnerability"
43-
Vulnerability.Builder vulBuilder = Vulnerability.newBuilder();
44-
noteBuilder.setVulnerability(vulBuilder);
45-
// Set additional information specific to your new vulnerability note
46-
Detail.Builder detailsBuilder = Detail.newBuilder();
47-
detailsBuilder.setDescription("my new vulnerability note");
48-
vulBuilder.setSeverity(Severity.LOW);
49-
vulBuilder.addDetails(detailsBuilder);
50-
// Build the Note object
51-
Note newNote = noteBuilder.build();
39+
40+
Note newNote = Note.newBuilder()
41+
// Associate the Note with the metadata type
42+
// https://cloud.google.com/container-registry/docs/container-analysis#supported_metadata_types
43+
// Here, we use the type "vulnerability"
44+
.setVulnerability(VulnerabilityNote.newBuilder()
45+
.addDetails(VulnerabilityNote.Detail.newBuilder()
46+
.setAffectedCpeUri("your-uri-here")
47+
.setAffectedPackage("your-package-here")
48+
.setAffectedVersionStart(Version.newBuilder()
49+
.setKind(Version.VersionKind.MINIMUM))
50+
.setAffectedVersionEnd(Version.newBuilder()
51+
.setKind(Version.VersionKind.MAXIMUM))))
52+
.build();
5253

5354
// Initialize client that will be used to send requests. After completing all of your requests,
5455
// call the "close" method on the client to safely clean up any remaining background resources.
55-
GrafeasV1Beta1Client client = GrafeasV1Beta1Client.create();
56+
GrafeasClient client = ContainerAnalysisClient.create().getGrafeasClient();
5657
Note result = client.createNote(projectName, noteId, newNote);
5758
return result;
5859
}

container-registry/container-analysis/src/main/java/com/example/containeranalysis/CreateOccurrence.java

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,19 @@
1717
package com.example.containeranalysis;
1818

1919
// [START containeranalysis_create_occurrence]
20-
import com.google.cloud.devtools.containeranalysis.v1beta1.GrafeasV1Beta1Client;
21-
import com.google.containeranalysis.v1beta1.NoteName;
22-
import com.google.containeranalysis.v1beta1.ProjectName;
23-
import io.grafeas.v1beta1.Occurrence;
24-
import io.grafeas.v1beta1.Resource;
25-
import io.grafeas.v1beta1.vulnerability.Details;
20+
import com.google.cloud.devtools.containeranalysis.v1.ContainerAnalysisClient;
21+
import io.grafeas.v1.GrafeasClient;
22+
import io.grafeas.v1.NoteName;
23+
import io.grafeas.v1.Occurrence;
24+
import io.grafeas.v1.ProjectName;
25+
import io.grafeas.v1.Version;
26+
import io.grafeas.v1.VulnerabilityOccurrence;
27+
import io.grafeas.v1.VulnerabilityOccurrence.PackageIssue;
2628
import java.io.IOException;
2729
import java.lang.InterruptedException;
2830

2931
public class CreateOccurrence {
30-
// Creates and returns a new Occurrence associated with an existing Note
32+
// Creates and returns a new vulnerability Occurrence associated with an existing Note
3133
public static Occurrence createOccurrence(String resourceUrl, String noteId,
3234
String occProjectId, String noteProjectId) throws IOException, InterruptedException {
3335
// String resourceUrl = "https://gcr.io/project/image@sha256:123";
@@ -37,22 +39,22 @@ public static Occurrence createOccurrence(String resourceUrl, String noteId,
3739
final NoteName noteName = NoteName.of(noteProjectId, noteId);
3840
final String occProjectName = ProjectName.format(occProjectId);
3941

40-
Occurrence.Builder occBuilder = Occurrence.newBuilder();
41-
occBuilder.setNoteName(noteName.toString());
42-
// Associate the Occurrence with the metadata type (should match the parent Note's type)
43-
// https://cloud.google.com/container-registry/docs/container-analysis#supported_metadata_types
44-
// Here, we use the type "vulnerability"
45-
Details.Builder detailsBuilder = Details.newBuilder();
46-
occBuilder.setVulnerability(detailsBuilder);
47-
// Attach the occurrence to the associated image uri
48-
Resource.Builder resourceBuilder = Resource.newBuilder();
49-
resourceBuilder.setUri(resourceUrl);
50-
occBuilder.setResource(resourceBuilder);
51-
Occurrence newOcc = occBuilder.build();
42+
Occurrence newOcc = Occurrence.newBuilder()
43+
.setNoteName(noteName.toString())
44+
.setResourceUri(resourceUrl)
45+
.setVulnerability(VulnerabilityOccurrence.newBuilder()
46+
.addPackageIssue(PackageIssue.newBuilder()
47+
.setAffectedCpeUri("your-uri-here")
48+
.setAffectedPackage("your-package-here")
49+
.setAffectedVersion(Version.newBuilder()
50+
.setKind(Version.VersionKind.MINIMUM))
51+
.setFixedVersion(Version.newBuilder()
52+
.setKind(Version.VersionKind.MAXIMUM))))
53+
.build();
5254

5355
// Initialize client that will be used to send requests. After completing all of your requests,
5456
// call the "close" method on the client to safely clean up any remaining background resources.
55-
GrafeasV1Beta1Client client = GrafeasV1Beta1Client.create();
57+
GrafeasClient client = ContainerAnalysisClient.create().getGrafeasClient();
5658
Occurrence result = client.createOccurrence(occProjectName, newOcc);
5759
return result;
5860
}

container-registry/container-analysis/src/main/java/com/example/containeranalysis/DeleteNote.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@
1717
package com.example.containeranalysis;
1818

1919
// [START containeranalysis_delete_note]
20-
import com.google.cloud.devtools.containeranalysis.v1beta1.GrafeasV1Beta1Client;
21-
import com.google.containeranalysis.v1beta1.NoteName;
20+
import com.google.cloud.devtools.containeranalysis.v1.ContainerAnalysisClient;
21+
import io.grafeas.v1.GrafeasClient;
22+
import io.grafeas.v1.NoteName;
2223
import java.io.IOException;
2324
import java.lang.InterruptedException;
2425

@@ -32,7 +33,7 @@ public static void deleteNote(String noteId, String projectId)
3233

3334
// Initialize client that will be used to send requests. After completing all of your requests,
3435
// call the "close" method on the client to safely clean up any remaining background resources.
35-
GrafeasV1Beta1Client client = GrafeasV1Beta1Client.create();
36+
GrafeasClient client = ContainerAnalysisClient.create().getGrafeasClient();
3637
client.deleteNote(noteName);
3738
}
3839
}

container-registry/container-analysis/src/main/java/com/example/containeranalysis/DeleteOccurrence.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@
1717
package com.example.containeranalysis;
1818

1919
// [START containeranalysis_delete_occurrence]
20-
import com.google.cloud.devtools.containeranalysis.v1beta1.GrafeasV1Beta1Client;
21-
import com.google.containeranalysis.v1beta1.OccurrenceName;
20+
import com.google.cloud.devtools.containeranalysis.v1.ContainerAnalysisClient;
21+
import io.grafeas.v1.GrafeasClient;
22+
import io.grafeas.v1.OccurrenceName;
2223
import java.io.IOException;
2324
import java.lang.InterruptedException;
2425

@@ -32,7 +33,7 @@ public static void deleteOccurrence(String occurrenceId, String projectId)
3233

3334
// Initialize client that will be used to send requests. After completing all of your requests,
3435
// call the "close" method on the client to safely clean up any remaining background resources.
35-
GrafeasV1Beta1Client client = GrafeasV1Beta1Client.create();
36+
GrafeasClient client = ContainerAnalysisClient.create().getGrafeasClient();
3637
client.deleteOccurrence(occurrenceName);
3738
}
3839
}

container-registry/container-analysis/src/main/java/com/example/containeranalysis/GetDiscoveryInfo.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@
1717
package com.example.containeranalysis;
1818

1919
// [START containeranalysis_discovery_info]
20-
import com.google.cloud.devtools.containeranalysis.v1beta1.GrafeasV1Beta1Client;
21-
import com.google.containeranalysis.v1beta1.ProjectName;
22-
import io.grafeas.v1beta1.Occurrence;
20+
import com.google.cloud.devtools.containeranalysis.v1.ContainerAnalysisClient;
21+
import io.grafeas.v1.GrafeasClient;
22+
import io.grafeas.v1.Occurrence;
23+
import io.grafeas.v1.ProjectName;
2324
import java.io.IOException;
2425
import java.lang.InterruptedException;
2526

@@ -35,7 +36,7 @@ public static void getDiscoveryInfo(String resourceUrl, String projectId)
3536

3637
// Initialize client that will be used to send requests. After completing all of your requests,
3738
// call the "close" method on the client to safely clean up any remaining background resources.
38-
GrafeasV1Beta1Client client = GrafeasV1Beta1Client.create();
39+
GrafeasClient client = ContainerAnalysisClient.create().getGrafeasClient();
3940
for (Occurrence o : client.listOccurrences(projectName, filterStr).iterateAll()) {
4041
System.out.println(o);
4142
}

container-registry/container-analysis/src/main/java/com/example/containeranalysis/GetNote.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@
1717
package com.example.containeranalysis;
1818

1919
// [START containeranalysis_get_note]
20-
import com.google.cloud.devtools.containeranalysis.v1beta1.GrafeasV1Beta1Client;
21-
import com.google.containeranalysis.v1beta1.NoteName;
22-
import io.grafeas.v1beta1.Note;
20+
import com.google.cloud.devtools.containeranalysis.v1.ContainerAnalysisClient;
21+
import io.grafeas.v1.GrafeasClient;
22+
import io.grafeas.v1.Note;
23+
import io.grafeas.v1.NoteName;
2324
import java.io.IOException;
2425
import java.lang.InterruptedException;
2526

@@ -33,7 +34,7 @@ public static Note getNote(String noteId, String projectId)
3334

3435
// Initialize client that will be used to send requests. After completing all of your requests,
3536
// call the "close" method on the client to safely clean up any remaining background resources.
36-
GrafeasV1Beta1Client client = GrafeasV1Beta1Client.create();
37+
GrafeasClient client = ContainerAnalysisClient.create().getGrafeasClient();
3738
Note n = client.getNote(noteName);
3839
System.out.println(n);
3940
return n;

container-registry/container-analysis/src/main/java/com/example/containeranalysis/GetOccurrence.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@
1717
package com.example.containeranalysis;
1818

1919
// [START containeranalysis_get_occurrence]
20-
import com.google.cloud.devtools.containeranalysis.v1beta1.GrafeasV1Beta1Client;
21-
import com.google.containeranalysis.v1beta1.OccurrenceName;
22-
import io.grafeas.v1beta1.Occurrence;
20+
import com.google.cloud.devtools.containeranalysis.v1.ContainerAnalysisClient;
21+
import io.grafeas.v1.GrafeasClient;
22+
import io.grafeas.v1.Occurrence;
23+
import io.grafeas.v1.OccurrenceName;
2324
import java.io.IOException;
2425
import java.lang.InterruptedException;
2526

@@ -33,7 +34,7 @@ public static Occurrence getOccurrence(String occurrenceId, String projectId)
3334

3435
// Initialize client that will be used to send requests. After completing all of your requests,
3536
// call the "close" method on the client to safely clean up any remaining background resources.
36-
GrafeasV1Beta1Client client = GrafeasV1Beta1Client.create();
37+
GrafeasClient client = ContainerAnalysisClient.create().getGrafeasClient();
3738
Occurrence occ = client.getOccurrence(occurrenceName);
3839
System.out.println(occ);
3940
return occ;

container-registry/container-analysis/src/main/java/com/example/containeranalysis/HighVulnerabilitiesForImage.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@
1717
package com.example.containeranalysis;
1818

1919
// [START containeranalysis_filter_vulnerability_occurrences]
20-
import com.google.cloud.devtools.containeranalysis.v1beta1.GrafeasV1Beta1Client;
21-
import com.google.containeranalysis.v1beta1.ProjectName;
22-
import io.grafeas.v1beta1.Occurrence;
23-
import io.grafeas.v1beta1.vulnerability.Severity;
20+
import com.google.cloud.devtools.containeranalysis.v1.ContainerAnalysisClient;
21+
import io.grafeas.v1.GrafeasClient;
22+
import io.grafeas.v1.Occurrence;
23+
import io.grafeas.v1.ProjectName;
24+
import io.grafeas.v1.Severity;
2425
import java.io.IOException;
2526
import java.util.LinkedList;
2627
import java.util.List;
@@ -36,7 +37,7 @@ public static List<Occurrence> findHighSeverityVulnerabilitiesForImage(String re
3637

3738
// Initialize client that will be used to send requests. After completing all of your requests,
3839
// call the "close" method on the client to safely clean up any remaining background resources.
39-
GrafeasV1Beta1Client client = GrafeasV1Beta1Client.create();
40+
GrafeasClient client = ContainerAnalysisClient.create().getGrafeasClient();
4041
LinkedList<Occurrence> vulnerabilitylist = new LinkedList<Occurrence>();
4142
for (Occurrence o : client.listOccurrences(projectName, filterStr).iterateAll()) {
4243
Severity severity = o.getVulnerability().getSeverity();

container-registry/container-analysis/src/main/java/com/example/containeranalysis/OccurrencesForImage.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@
1717
package com.example.containeranalysis;
1818

1919
// [START containeranalysis_occurrences_for_image]
20-
import com.google.cloud.devtools.containeranalysis.v1beta1.GrafeasV1Beta1Client;
21-
import com.google.containeranalysis.v1beta1.ProjectName;
22-
import io.grafeas.v1beta1.Occurrence;
20+
import com.google.cloud.devtools.containeranalysis.v1.ContainerAnalysisClient;
21+
import io.grafeas.v1.GrafeasClient;
22+
import io.grafeas.v1.Occurrence;
23+
import io.grafeas.v1.ProjectName;
2324
import java.io.IOException;
2425
import java.lang.InterruptedException;
2526

@@ -35,7 +36,7 @@ public static int getOccurrencesForImage(String resourceUrl, String projectId)
3536

3637
// Initialize client that will be used to send requests. After completing all of your requests,
3738
// call the "close" method on the client to safely clean up any remaining background resources.
38-
GrafeasV1Beta1Client client = GrafeasV1Beta1Client.create();
39+
GrafeasClient client = ContainerAnalysisClient.create().getGrafeasClient();
3940
int i = 0;
4041
for (Occurrence o : client.listOccurrences(projectName, filterStr).iterateAll()) {
4142
// Write custom code to process each Occurrence here

container-registry/container-analysis/src/main/java/com/example/containeranalysis/OccurrencesForNote.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,11 @@
1919
// [START containeranalysis_occurrences_for_note]
2020
import static java.lang.Thread.sleep;
2121

22-
import com.google.cloud.devtools.containeranalysis.v1beta1.GrafeasV1Beta1Client;
23-
import com.google.containeranalysis.v1beta1.NoteName;
24-
import io.grafeas.v1beta1.ListNoteOccurrencesRequest;
25-
import io.grafeas.v1beta1.Occurrence;
22+
import com.google.cloud.devtools.containeranalysis.v1.ContainerAnalysisClient;
23+
import io.grafeas.v1.GrafeasClient;
24+
import io.grafeas.v1.ListNoteOccurrencesRequest;
25+
import io.grafeas.v1.NoteName;
26+
import io.grafeas.v1.Occurrence;
2627
import java.io.IOException;
2728
import java.lang.InterruptedException;
2829

@@ -41,7 +42,7 @@ public static int getOccurrencesForNote(String noteId, String projectId)
4142

4243
// Initialize client that will be used to send requests. After completing all of your requests,
4344
// call the "close" method on the client to safely clean up any remaining background resources.
44-
GrafeasV1Beta1Client client = GrafeasV1Beta1Client.create();
45+
GrafeasClient client = ContainerAnalysisClient.create().getGrafeasClient();
4546
int i = 0;
4647
for (Occurrence o : client.listNoteOccurrences(request).iterateAll()) {
4748
// Write custom code to process each Occurrence here

0 commit comments

Comments
 (0)