static boolean accessControlAttributeConfigsIsEquals()

in aws-sso-instanceaccesscontrolattributeconfiguration/src/main/java/software/amazon/sso/instanceaccesscontrolattributeconfiguration/Translator.java [168:200]


  static boolean accessControlAttributeConfigsIsEquals(ResourceModel cfnModel, ResourceModel ssoModel){

        List<AccessControlAttribute> attributes;
        List<AccessControlAttribute> expectedAttributes = ssoModel.getAccessControlAttributes();

        if(cfnModel.getInstanceAccessControlAttributeConfiguration() == null && CollectionUtils.isNullOrEmpty(cfnModel.getAccessControlAttributes())) {
            attributes = new ArrayList<>();
        } else if (cfnModel.getInstanceAccessControlAttributeConfiguration() == null) {
          attributes = cfnModel.getAccessControlAttributes();
        } else {
          attributes = cfnModel.getInstanceAccessControlAttributeConfiguration().getAccessControlAttributes();
        }

        ImmutableMap<String, Set<String>> actualValues = ImmutableMap.<String, Set<String>>builder()
                .putAll(attributes
                        .stream()
                        .collect(Collectors.toMap(
                                accessControlAttribute -> accessControlAttribute.getKey(),
                                accessControlAttribute -> accessControlAttribute.getValue().getSource().stream().collect(Collectors.toSet())
                        )))
                .build();

        ImmutableMap<String, Set<String> > valuesFromRResponse = ImmutableMap.<String, Set<String>>builder()
                .putAll(expectedAttributes
                        .stream()
                        .collect(Collectors.toMap(
                                accessControlAttribute -> accessControlAttribute.getKey(),
                                accessControlAttribute -> accessControlAttribute.getValue().getSource().stream().collect(Collectors.toSet())
                        )))
                .build();

        return actualValues.equals(valuesFromRResponse);
      }