1818
1919import com .google .cloud .security .privateca .v1 .CaPool ;
2020import com .google .cloud .security .privateca .v1 .CertificateAuthority ;
21+ import com .google .cloud .security .privateca .v1 .CertificateAuthority .State ;
2122import com .google .cloud .security .privateca .v1 .CertificateAuthorityServiceClient ;
2223import com .google .cloud .security .privateca .v1 .CertificateAuthorityServiceClient .ListCaPoolsPagedResponse ;
2324import com .google .cloud .security .privateca .v1 .DeleteCaPoolRequest ;
2425import com .google .cloud .security .privateca .v1 .DeleteCertificateAuthorityRequest ;
26+ import com .google .cloud .security .privateca .v1 .DisableCertificateAuthorityRequest ;
2527import com .google .cloud .security .privateca .v1 .ListCaPoolsRequest ;
2628import com .google .cloud .security .privateca .v1 .LocationName ;
2729import java .io .IOException ;
@@ -72,11 +74,20 @@ public static void deleteCertificateAuthority(String caPoolName)
7274 CertificateAuthorityServiceClient .create ()) {
7375 for (CertificateAuthority certificateAuthority :
7476 certificateAuthorityServiceClient .listCertificateAuthorities (caPoolName ).iterateAll ()) {
77+ // Check if the CA is enabled.
78+ State caState =
79+ certificateAuthorityServiceClient
80+ .getCertificateAuthority (certificateAuthority .getName ())
81+ .getState ();
82+ if (caState == State .ENABLED ) {
83+ disableCertificateAuthority (certificateAuthority .getName ());
84+ }
7585
7686 DeleteCertificateAuthorityRequest deleteCertificateAuthorityRequest =
7787 DeleteCertificateAuthorityRequest .newBuilder ()
7888 .setName (certificateAuthority .getName ())
79- .setIgnoreActiveCertificates (false )
89+ .setIgnoreActiveCertificates (true )
90+ .setSkipGracePeriod (true )
8091 .build ();
8192
8293 certificateAuthorityServiceClient
@@ -85,4 +96,20 @@ public static void deleteCertificateAuthority(String caPoolName)
8596 }
8697 }
8798 }
99+
100+ public static void disableCertificateAuthority (String caName )
101+ throws IOException , ExecutionException , InterruptedException , TimeoutException {
102+ try (CertificateAuthorityServiceClient client = CertificateAuthorityServiceClient .create ()) {
103+ DisableCertificateAuthorityRequest disableCertificateAuthorityRequest =
104+ DisableCertificateAuthorityRequest .newBuilder ()
105+ .setName (caName )
106+ .build ();
107+
108+ // Disable the Certificate Authority.
109+ client
110+ .disableCertificateAuthorityCallable ()
111+ .futureCall (disableCertificateAuthorityRequest )
112+ .get (5 , TimeUnit .MINUTES );
113+ }
114+ }
88115}
0 commit comments