Ec2ContextImpl.java

package com.cloudforgeci.api.core;

import com.cloudforge.core.interfaces.Ec2Context;

import java.util.Optional;

/**
 * Implementation of Ec2Context providing runtime information for UserData configuration.
 */
public class Ec2ContextImpl implements Ec2Context {
    private final String stackName;
    private final String runtimeType;
    private final String securityProfile;
    private final boolean hasEfs;
    private final String efsId;
    private final String accessPointId;

    public Ec2ContextImpl(String stackName, String runtimeType, String securityProfile,
                          boolean hasEfs, String efsId, String accessPointId) {
        this.stackName = stackName;
        this.runtimeType = runtimeType;
        this.securityProfile = securityProfile;
        this.hasEfs = hasEfs;
        this.efsId = efsId;
        this.accessPointId = accessPointId;
    }

    @Override
    public String stackName() {
        return stackName;
    }

    @Override
    public String runtimeType() {
        return runtimeType;
    }

    @Override
    public String securityProfile() {
        return securityProfile;
    }

    @Override
    public boolean hasEfs() {
        return hasEfs;
    }

    @Override
    public Optional<String> efsId() {
        return Optional.ofNullable(efsId);
    }

    @Override
    public Optional<String> accessPointId() {
        return Optional.ofNullable(accessPointId);
    }
}