All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nt-java.1.4.3.source-code.Session.proto Maven / Gradle / Ivy

The newest version!
syntax = "proto3";

option java_package = "ai.grakn.rpc.proto";
option java_outer_classname = "SessionProto";

import "Concept.proto";
import "Answer.proto";

package session;

service SessionService {
    // Represents a full transaction. The stream of `Transaction.Req`s must begin with a `Open` message.
    // When the call is completed, the transaction will always be closed, with or without a `Commit` message.
    rpc transaction (stream Transaction.Req) returns (stream Transaction.Res);
}

message Transaction {
    message Req {
        map metadata = 1000;
        oneof req {
            Open.Req open_req = 1;
            Commit.Req commit_req = 2;
            Query.Req query_req = 3;
            Iter.Req iterate_req = 4;
            GetSchemaConcept.Req getSchemaConcept_req = 5;
            GetConcept.Req getConcept_req = 6;
            GetAttributes.Req getAttributes_req = 7;
            PutEntityType.Req putEntityType_req = 8;
            PutAttributeType.Req putAttributeType_req = 9;
            PutRelationType.Req putRelationType_req = 10;
            PutRole.Req putRole_req = 11;
            PutRule.Req putRule_req = 12;
            ConceptMethod.Req conceptMethod_req = 13;
        }
    }
    message Res {
        map metadata = 1000;
        oneof res {
            Open.Res open_res = 1;
            Commit.Res commit_res = 2;
            Query.Iter query_iter = 3;
            Iter.Res iterate_res = 4;
            GetSchemaConcept.Res getSchemaConcept_res = 5;
            GetConcept.Res getConcept_res = 6;
            GetAttributes.Iter getAttributes_iter = 7;
            PutEntityType.Res putEntityType_res = 8;
            PutAttributeType.Res putAttributeType_res = 9;
            PutRelationType.Res putRelationType_res = 10;
            PutRole.Res putRole_res = 11;
            PutRule.Res putRule_res = 12;
            ConceptMethod.Res conceptMethod_res = 13;
        }
    }

    message Iter {
        message Req {
            int32 id = 1;
        }
        message Res {
            oneof res {
                bool done = 1;
                Query.Iter.Res query_iter_res = 2;
                GetAttributes.Iter.Res getAttributes_iter_res = 3;
                Method.Iter.Res conceptMethod_iter_res = 4;
            }
        }
    }

    enum Type {
        READ = 0;
        WRITE = 1;
        BATCH = 2;
    }

    message Open {
        message Req {
            string keyspace = 1;
            Type type = 2;
            /* Fields ignored in the open-source version. */
            string username = 3;
            string password = 4;
        }
        message Res {}

    }

    message Commit {
        message Req {}
        message Res {}
    }

    message Query {
        message Req {
            string query = 1;
            INFER infer = 2;
            // We cannot use bool for `infer` because GRPC's default value for bool is FALSE
            // We use enum INFER instead, because the default value is index 0 (TRUE)
        }
        message Iter {
            int32 id = 1;
            message Res {
                Answer answer = 1;
            }
        }
        enum INFER {
            TRUE = 0;
            FALSE = 1;
            // The default value of this enum is 0 (TRUE)
        }
    }

    message GetSchemaConcept {
        message Req {
            string label = 1;
        }
        message Res {
            oneof res {
                Concept schemaConcept = 1;
                Null null = 2;
            }
        }
    }

    message GetConcept {
        message Req {
            string id = 1;
        }
        message Res {
            oneof res {
                Concept concept = 1;
                Null null = 2;
            }
        }
    }

    message GetAttributes {
        message Req {
            ValueObject value = 1;
        }
        message Iter {
            int32 id = 1;
            message Res {
                Concept attribute = 1;
            }
        }
    }

    message PutEntityType {
        message Req {
            string label = 1;
        }
        message Res {
            Concept entityType = 1;
        }
    }

    message PutAttributeType {
        message Req {
            string label = 1;
            AttributeType.DATA_TYPE dataType = 2;
        }
        message Res {
            Concept attributeType = 1;
        }
    }

    message PutRelationType {
        message Req {
            string label = 1;
        }
        message Res {
            Concept relationType = 1;
        }
    }

    message PutRole {
        message Req {
            string label = 1;
        }
        message Res {
            Concept role = 1;
        }
    }

    message PutRule {
        message Req {
            string label = 1;
            string when = 2;
            string then = 3;
        }
        message Res {
            Concept rule = 1;
        }
    }

    message ConceptMethod {
        message Req {
            string id = 1;
            Method.Req method = 2;
        }
        message Res {
            Method.Res response = 1;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy