- 
                Notifications
    You must be signed in to change notification settings 
- Fork 9
iam: onboarding client layer for IAM #90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
| Codecov Report❌ Patch coverage is  Additional details and impacted files@@             Coverage Diff              @@
##               main      #90      +/-   ##
============================================
+ Coverage     78.19%   82.39%   +4.19%     
+ Complexity     1730       43    -1687     
============================================
  Files           136      141       +5     
  Lines          7036     7162     +126     
  Branches        801      833      +32     
============================================
+ Hits           5502     5901     +399     
+ Misses         1112      832     -280     
- Partials        422      429       +7     
 Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
 | 
        
          
                iam/iam-client/src/main/java/com/salesforce/multicloudj/iam/client/IamClient.java
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                iam/iam-client/src/main/java/com/salesforce/multicloudj/iam/model/TrustConfiguration.java
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                iam/iam-client/src/test/java/com/salesforce/multicloudj/iam/client/IamClientTest.java
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                iam/iam-client/src/test/java/com/salesforce/multicloudj/iam/client/IamClientTest.java
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                iam/iam-client/src/main/java/com/salesforce/multicloudj/iam/model/CreateOptions.java
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                iam/iam-client/src/main/java/com/salesforce/multicloudj/iam/model/CreateOptions.java
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                iam/iam-client/src/main/java/com/salesforce/multicloudj/iam/model/CreateOptions.java
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                iam/iam-client/src/main/java/com/salesforce/multicloudj/iam/model/Statement.java
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                iam/iam-client/src/main/java/com/salesforce/multicloudj/iam/model/PolicyDocument.java
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                iam/iam-client/src/main/java/com/salesforce/multicloudj/iam/model/PolicyDocument.java
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                iam/iam-client/src/main/java/com/salesforce/multicloudj/iam/model/PolicyDocument.java
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                iam/iam-client/src/main/java/com/salesforce/multicloudj/iam/model/CreateOptions.java
          
            Show resolved
            Hide resolved
        
      There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks for PR, please address the comments
        
          
                iam/iam-client/src/main/java/com/salesforce/multicloudj/iam/model/CreateOptions.java
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                iam/iam-client/src/main/java/com/salesforce/multicloudj/iam/model/CreateOptions.java
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                iam/iam-client/src/main/java/com/salesforce/multicloudj/iam/model/PolicyDocument.java
          
            Show resolved
            Hide resolved
        
              
          
                iam/iam-client/src/main/java/com/salesforce/multicloudj/iam/model/Statement.java
          
            Show resolved
            Hide resolved
        
      a9c92ea    to
    6719880      
    Compare
  
    2224a5e    to
    a6e6258      
    Compare
  
    | @Override | ||
| public boolean equals(Object o) { | ||
| if (this == o) { | ||
| return true; | ||
| } | ||
| if (o == null || getClass() != o.getClass()) { | ||
| return false; | ||
| } | ||
| CreateOptions that = (CreateOptions) o; | ||
| return Objects.equals(path, that.path) | ||
| && Objects.equals(maxSessionDuration, that.maxSessionDuration) | ||
| && Objects.equals(permissionBoundary, that.permissionBoundary); | ||
| } | ||
|  | ||
| @Override | ||
| public int hashCode() { | ||
| return Objects.hash(path, maxSessionDuration, permissionBoundary); | ||
| } | ||
|  | ||
| @Override | ||
| public String toString() { | ||
| return "CreateOptions{" | ||
| + "path='" + path + '\'' | ||
| + ", maxSessionDuration=" + maxSessionDuration | ||
| + ", permissionBoundary='" + permissionBoundary + '\'' | ||
| + '}'; | ||
| } | ||
| } No newline at end of file | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see you have onboarded these methods for all classes? These should exist if they are required, I don't see the usage anywhere
Summary
• Add IAM client module with cloud-agnostic API for identity and policy management
• Implement substrate-neutral PolicyDocument with fluent builder pattern
• Provide foundation for unified IAM operations across AWS, GCP, and AliCloud
Components
IamClient: Main entry point with builder pattern for identity lifecycle operations
PolicyDocument/Statement: Cloud-agnostic policy models with type-safe builders
Supporting models: TrustConfiguration and CreateOptions for flexible identity creation
Complete unit test coverage for all classes
Notes
Follows MultiCloudJ SPI pattern for future provider implementations
Client methods throw UnsupportedOperationException pending driver layer
Ready for AWS/GCP/AliCloud implementation modules