private ResourceModel describeDBProxyTargetGroup()

in aws-rds-dbproxytargetgroup/src/main/java/software/amazon/rds/dbproxytargetgroup/ReadHandler.java [49:86]


    private ResourceModel describeDBProxyTargetGroup(final String proxyName,
                                                     final String targetGroupName) {
        DescribeDBProxyTargetGroupsRequest request = new DescribeDBProxyTargetGroupsRequest()
                                                             .withDBProxyName(proxyName)
                                                             .withTargetGroupName(targetGroupName);

        final DescribeDBProxyTargetGroupsResult result = clientProxy.injectCredentialsAndInvoke(request, rdsClient::describeDBProxyTargetGroups);

        if (result != null && result.getTargetGroups() != null && result.getTargetGroups().size() == 1) {
            ResourceModel resourceModel = Utility.resultToModel(result.getTargetGroups().get(0));

            DescribeDBProxyTargetsRequest targetsRequest = new DescribeDBProxyTargetsRequest()
                                                                         .withDBProxyName(proxyName)
                                                                         .withTargetGroupName(targetGroupName);
            final DescribeDBProxyTargetsResult targetsResult = clientProxy.injectCredentialsAndInvoke(targetsRequest, rdsClient::describeDBProxyTargets);
            if (targetsResult != null) {
                List<String> dbClusters = new ArrayList<>();
                List<String> dbInstances = new ArrayList<>();
                for (DBProxyTarget target: targetsResult.getTargets()) {
                    if (target.getType().equals("TRACKED_CLUSTER")) {
                        dbClusters.add(target.getRdsResourceId());
                    } else {
                        dbInstances.add(target.getRdsResourceId());
                    }
                }

                if (dbClusters.size() > 0) {
                    resourceModel.setDBClusterIdentifiers(dbClusters);
                } else if (dbInstances.size() > 0){
                    resourceModel.setDBInstanceIdentifiers(dbInstances);
                }
            }
            return resourceModel;
        } else {
            String name = String.format("%s:%s", proxyName, targetGroupName);
            throw new CfnNotFoundException(ResourceModel.TYPE_NAME, name);
        }
    }