static SessionData fromSlime(Slime slime) {
        Cursor cursor = slime.get();
        return new SessionData(ApplicationId.fromSerializedForm(cursor.field(APPLICATION_ID_PATH).asString()),
                               optionalString(cursor.field(APPLICATION_PACKAGE_REFERENCE_PATH)).map(FileReference::new),
                               Version.fromString(cursor.field(VERSION_PATH).asString()),
                               SlimeUtils.isPresent(cursor.field(VERSION_TO_BUILD_FIRST_PATH))
                                       ? Optional.of(Version.fromString(cursor.field(VERSION_TO_BUILD_FIRST_PATH).asString()))
                                       : Optional.empty(),
                               Instant.ofEpochMilli(cursor.field(CREATE_TIME_PATH).asLong()),
                               optionalString(cursor.field(DOCKER_IMAGE_REPOSITORY_PATH)).map(DockerImage::fromString),
                               optionalString(cursor.field(ATHENZ_DOMAIN)).map(AthenzDomain::from),
                               SlimeUtils.isPresent(cursor.field(QUOTA_PATH))
                                       ? Optional.of(Quota.fromSlime(cursor.field(QUOTA_PATH)))
                                       : Optional.empty(),
                               TenantVaultSerializer.listFromSlime(cursor.field(TENANT_VAULTS_PATH)),
                               TenantSecretStoreSerializer.listFromSlime(cursor.field(TENANT_SECRET_STORES_PATH)),
                               OperatorCertificateSerializer.fromSlime(cursor.field(OPERATOR_CERTIFICATES_PATH)),
                               optionalString(cursor.field(CLOUD_ACCOUNT_PATH)).map(CloudAccount::from),
                               DataplaneTokenSerializer.fromSlime(cursor.field(DATAPLANE_TOKENS_PATH)),
                               ActivationTriggersSerializer.fromSlime(cursor.field(ACTIVATION_TRIGGERS_PATH)));
    }
Data class for session information, typically parameters supplied in a deployment request that needs
to be persisted in ZooKeeper. These will be used when creating a new session based on an existing one.

@author hmusum
configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionData.java