IBM / ibm-cos-sdk-java-config

Apache License 2.0
0 stars 4 forks source link

Upcoming release - IBM COS Resource Configuration SDK for Java - 2.0.0 #2

Closed avinash1IBM closed 1 year ago

avinash1IBM commented 1 year ago

We plan to release ibm-cos-sdk-config-2.0.0 in November 2022. This issue will be updated with more specifics on timing and the availability of release candidates as we get closer to the release date.

The following information is being provided prior to GA of the release so users can plan on adopting to new sdk - ibm-cos-sdk-config

Upcoming release - IBM COS Resource Configuration SDK for Java-2.0.0

Breaking changes

Changes in Package Imports

Current New
```java import com.ibm.cloud.sdk.core.service.security.IamOptions; ``` ```java import com.ibm.cloud.sdk.core.security.IamAuthenticator; import com.ibm.cloud.sdk.core.http.Response; import com.ibm.cloud.objectstorage.config.resource_configuration.v1.model.BucketPatch; ```

Using API Key and Access Token

Using API Key

Current New
```java IamOptions iamOptions = new IamOptions.Builder() .apiKey(apiKey).url(ibmAuthEndpoint).build(); ``` ```java IamAuthenticator authenticator = new IamAuthenticator.Builder() .apikey(apiKey).url(ibmAuthEndpoint).build(); ```

Using Access Token

Current New
```java IamOptions iamOptions = new IamOptions.Builder() .accessToken(accessToken).url(ibmAuthEndpoint).build(); ``` ```java BearerTokenAuthenticator authenticator = new BearerTokenAuthenticator(bearerToken); ```

Changes in Create Client

Credentials using IamOptionsare no longer supported. Rather, resource-configuration String and an instance of Authenticator should be passed as below.

Current New
```java ResourceConfiguration configClient = new ResourceConfiguration(iamOptions); ``` ```java ResourceConfiguration configClient = new ResourceConfiguration("resource-configuration", authenticator); ```

Changes in API

Activity-Tracking

Current New
```java ActivityTracking activityTrackingConfig = new ActivityTracking().setActivityTrackerCrn(activityTrackerCrn); ActivityTracking activityTrackingConfig = new ActivityTracking().setReadDataEvents(boolean); ActivityTracking activityTrackingConfig = new ActivityTracking().setWriteDataEvents(boolean); ``` ```java ActivityTracking activityTrackingConfig = new ActivityTracking.Builder().activityTrackerCrn(activityTrackerCrn).build(); ActivityTracking activityTrackingConfig = new ActivityTracking.Builder().readDataEvents(boolean).build(); ActivityTracking activityTrackingConfig = new ActivityTracking.Builder().writeDataEvents(boolean).build(); ```

Firewall

List as parameter to api methods
Current New
```java Firewall firewallConfig = new Firewall().setAllowedIp(allowedIp); Firewall firewallConfig = new Firewall().setAllowedNetworkType(allowedNetworkType); Firewall firewallConfig = new Firewall().setDeniedIp(deniedIp); ``` ```java Firewall firewallConfig = new Firewall.Builder().allowedIp(allowedIp).build(); Firewall firewallConfig = new Firewall.Builder().allowedNetworkType(allowedNetworkType).build(); Firewall firewallConfig = new Firewall.Builder().deniedIp(deniedIp).build(); ```
String as parameter to api methods
New
```java Firewall firewallConfig = new Firewall.Builder().addAllowedIp(allowedIp).build(); Firewall firewallConfig = new Firewall.Builder().addAllowedNetworkType(allowedNetworkType).build(); Firewall firewallConfig = new Firewall.Builder().addDeniedIp(deniedIp).build(); ```

NOTE: allowedNetworkType accepted values are AllowedNetworkType.X_PRIVATE/AllowedNetworkType.X_PUBLIC/AllowedNetworkType.DIRECT.

Metrics-Monitoring

Current New
```java MetricsMonitoring metricsMonitoringConfig = new MetricsMonitoring().setMetricsMonitoringCrn(metricsCrn); MetricsMonitoring metricsMonitoringConfig = new MetricsMonitoring().setRequestMetricsEnabled(boolean); MetricsMonitoring metricsMonitoringConfig = new MetricsMonitoring().setUsageMetricsEnabled(boolean); ``` ```java MetricsMonitoring metricsMonitoringConfig = new MetricsMonitoring.Builder().metricsMonitoringCrn(metricsCrn).build(); MetricsMonitoring metricsMonitoringConfig = new MetricsMonitoring.Builder().requestMetricsEnabled(boolean).build(); MetricsMonitoring metricsMonitoringConfig = new MetricsMonitoring.Builder().usageMetricsEnabled(boolean).build(); ```

Update-Bucket-Config-Options

Step-1
Creating a BuildPatch Object
```java BucketPatch bucketPatch = new BucketPatch.Builder().activityTracking(activityTrackingConfig).build(); BucketPatch bucketPatch = new BucketPatch.Builder().firewall(firewallConfig).build(); BucketPatch bucketPatch = new BucketPatch.Builder().hardQuota(1024).build(); BucketPatch bucketPatch = new BucketPatch.Builder().metricsMonitoring(metricsMonitoringConfig).build(); ```
Step-2
Current New
```java UpdateBucketConfigOptions bucketOptions = new UpdateBucketConfigOptions.Builder(bucketName).apiName(apiConfig).build(); ``` ```java UpdateBucketConfigOptions updateBucket = new UpdateBucketConfigOptions.Builder(bucketName).bucketPatch(bucketPatch.asPatch()).build(); ```

NOTE: apiName in current version is one among activityTracking/firewall/hardQuota/metricsMonitoring.

Changes in Response

Current New
```java Bucket bucket = configClient.getBucketConfig(bucketOptions).execute(); ``` ```java Bucket bucket = configClient.getBucketConfig(bucketOptions).execute().getResult(); ```

API-Method-Names

Activity-Tracking
Current New
```java String activityTrackingCrn = getBucketConfig.getActivityTracking().getActivityTrackerCrn(); boolean isReadEvents = getBucketConfig.getActivityTracking().isReadDataEvents(); boolean isWriteEvents = getBucketConfig.getActivityTracking().isWriteDataEvents(); ``` ```java String activityTrackingCrn = getBucketConfig.getActivityTracking().activityTrackerCrn(); boolean isReadEvents = getBucketConfig.getActivityTracking().readDataEvents(); boolean isWriteEvents = getBucketConfig.getActivityTracking().writeDataEvents(); ```
Firewall
Current New
```java List allowedIp = getBucketConfig.getFirewall().getAllowedIp(); List allowedNetworkType = getBucketConfig.getFirewall().getAllowedNetworkType(); List deniedIp = getBucketConfig.getFirewall().getDeniedIp(); ``` ```java List allowedIp = getBucketConfig.getFirewall().allowedIp(); List allowedNetworkType = getBucketConfig.getFirewall().allowedNetworkType(); List deniedIp = getBucketConfig.getFirewall().deniedIp(); ```
Metrics-Monitoring
Current New
```java String metricsMonitoringCrn = getBucketConfig.getMetricsMonitoring().getMetricsMonitoringCrn(); boolean isRequestMetricsEnabled = getBucketConfig.getMetricsMonitoring().isRequestMetricsEnabled(); boolean isUsageMetricsEnabled = getBucketConfig.getMetricsMonitoring().isUsageMetricsEnabled(); ``` ```java String metricsMonitoringCrn = getBucketConfig.getMetricsMonitoring().metricsMonitoringCrn(); boolean isRequestMetricsEnabled = getBucketConfig.getMetricsMonitoring().requestMetricsEnabled(); boolean isUsageMetricsEnabled = getBucketConfig.getMetricsMonitoring().usageMetricsEnabled(); ```

This issue will be used to track features and changes we want to make in the next major release of this package.

IBMalok commented 1 year ago

🎉 ibm-cos-sdk-java-config - v2.0.0 officially been released! 🎉

avinash1IBM commented 1 year ago

Closing this as the release was made