Repository: yorkie-team/yorkie
Pull request #382 (2022-08-05 14:02:39)

Heka1024 introduce buf
<!--  Thanks for sending a pull request! -->

**What this PR does / why we need it**:

@heka1024 

This PR continues the works of #368 and #372.

**Which issue(s) this PR fixes**:
<!--
*Automatically closes linked issue when PR is merged.
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
-->
Fixes #

**Special notes for your reviewer**:

```
  ignore_only:
    # The linter requires that the zero value for all enums should be suffixed
    # with _UNSPECIFIED. However, it is difficult to migrate the operations
    # already stored in the DB, so we ignore the rule for now.
    ENUM_ZERO_VALUE_SUFFIX:
      - yorkie/v1/resources.proto
```

Future work:

We are also considering introducing an IDL repository or Buf Schema Registry to manage protobuf files in a single location. Even now, this repository is SSOT for proto files, but we are using it by manually copying it from another repository(e.g. `yorkie-js-sdk`, `yorkie-house`).

- BSR: https://docs.buf.build/tour/log-into-the-bsr

**Does this PR introduce a user-facing change?**:
<!--
If no, just write "NONE" in the release-note block below.
If yes, a release note is required:
Enter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string "action required".
-->
```release-note

```

**Additional documentation**:

<!--
This section can be blank if this pull request does not require a release note.

Please use the following format for linking documentation:
- [Usage]: <link>
- [Other doc]: <link>
-->
```docs

```

**Checklist**:
- [x] Added relevant tests or not required
- [x] Didn't break anything


codecov[bot]: # [Codecov](https://codecov.io/gh/yorkie-team/yorkie/pull/382?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=yorkie-team) Report
> Merging [#382](https://codecov.io/gh/yorkie-team/yorkie/pull/382?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=yorkie-team) (7069e41) into [main](https://codecov.io/gh/yorkie-team/yorkie/commit/dd24c85bc3eb6a478a3c600f2c542d8fa9223908?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=yorkie-team) (dd24c85) will **not change** coverage.
> The diff coverage is `75.00%`.

```diff
@@           Coverage Diff           @@
##             main     #382   +/-   ##
=======================================
  Coverage   47.22%   47.22%           
=======================================
  Files          68       68           
  Lines        5741     5741           
=======================================
  Hits         2711     2711           
  Misses       2734     2734           
  Partials      296      296           
```


| [Impacted Files](https://codecov.io/gh/yorkie-team/yorkie/pull/382?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=yorkie-team) | Coverage Δ | |
|---|---|---|
| [api/converter/from\_bytes.go](https://codecov.io/gh/yorkie-team/yorkie/pull/382/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=yorkie-team#diff-YXBpL2NvbnZlcnRlci9mcm9tX2J5dGVzLmdv) | `64.42% <ø> (ø)` | |
| [api/converter/to\_bytes.go](https://codecov.io/gh/yorkie-team/yorkie/pull/382/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=yorkie-team#diff-YXBpL2NvbnZlcnRlci90b19ieXRlcy5nbw==) | `85.82% <ø> (ø)` | |
| [client/client.go](https://codecov.io/gh/yorkie-team/yorkie/pull/382/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=yorkie-team#diff-Y2xpZW50L2NsaWVudC5nbw==) | `11.98% <0.00%> (ø)` | |
| [server/backend/database/change\_info.go](https://codecov.io/gh/yorkie-team/yorkie/pull/382/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=yorkie-team#diff-c2VydmVyL2JhY2tlbmQvZGF0YWJhc2UvY2hhbmdlX2luZm8uZ28=) | `29.16% <ø> (ø)` | |
| [server/backend/sync/etcd/client.go](https://codecov.io/gh/yorkie-team/yorkie/pull/382/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=yorkie-team#diff-c2VydmVyL2JhY2tlbmQvc3luYy9ldGNkL2NsaWVudC5nbw==) | `73.52% <ø> (ø)` | |
| [server/backend/sync/etcd/pubsub.go](https://codecov.io/gh/yorkie-team/yorkie/pull/382/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=yorkie-team#diff-c2VydmVyL2JhY2tlbmQvc3luYy9ldGNkL3B1YnN1Yi5nbw==) | `0.00% <0.00%> (ø)` | |
| [server/rpc/yorkie\_server.go](https://codecov.io/gh/yorkie-team/yorkie/pull/382/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=yorkie-team#diff-c2VydmVyL3JwYy95b3JraWVfc2VydmVyLmdv) | `46.42% <ø> (ø)` | |
| [api/converter/to\_pb.go](https://codecov.io/gh/yorkie-team/yorkie/pull/382/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=yorkie-team#diff-YXBpL2NvbnZlcnRlci90b19wYi5nbw==) | `65.83% <73.68%> (ø)` | |
| [api/converter/from\_pb.go](https://codecov.io/gh/yorkie-team/yorkie/pull/382/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=yorkie-team#diff-YXBpL2NvbnZlcnRlci9mcm9tX3BiLmdv) | `55.60% <80.00%> (ø)` | |
| [server/rpc/server.go](https://codecov.io/gh/yorkie-team/yorkie/pull/382/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=yorkie-team#diff-c2VydmVyL3JwYy9zZXJ2ZXIuZ28=) | `66.66% <100.00%> (ø)` | |

Help us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=yorkie-team). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=yorkie-team)


Patch:
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 1add48bb..8191a19f 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -7,7 +7,6 @@ on:
     branches: [ main ]
 
 jobs:
-
   build:
     name: build
     runs-on: ubuntu-latest
@@ -18,8 +17,11 @@ jobs:
       with:
         go-version: ^1.18
 
+    - name: Setup buf action
+      uses: bufbuild/buf-setup-action@v1
+
     - name: Check out code
-      uses: actions/checkout@v2
+      uses: actions/checkout@v3
 
     - name: Get tools dependencies
       run: make tools
@@ -27,6 +29,9 @@ jobs:
     - name: Lint
       run: make lint
 
+    - name: Lint proto files
+      uses: bufbuild/buf-lint-action@v1
+
     - name: Build
       run: make build
 
diff --git a/Makefile b/Makefile
index 757eab99..c961a041 100644
--- a/Makefile
+++ b/Makefile
@@ -33,15 +33,15 @@ proto: ## generate proto files
 --gofast_out=plugins=grpc,\
 Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types,\
 Mgoogle/protobuf/wrappers.proto=github.com/gogo/protobuf/types,\
-Mgoogle/protobuf/any.proto=github.com/gogo/protobuf/types,:./api \
-api/*.proto
+Mgoogle/protobuf/any.proto=github.com/gogo/protobuf/types,:./api/yorkie/v1 \
+api/yorkie/v1/*.proto
 
 protoset: ## generate protoset file
 	protoc \
 -I=./api \
 --descriptor_set_out=yorkie.protoset \
 --include_imports \
-api/*.proto
+api/yorkie/v1/*.proto
 
 build: ## builds an executable that runs in the current environment
 	go build -o $(EXECUTABLE) -ldflags "${GO_LDFLAGS}" ./cmd/yorkie
diff --git a/admin/client.go b/admin/client.go
index 5b1e295d..933304b4 100644
--- a/admin/client.go
+++ b/admin/client.go
@@ -23,9 +23,9 @@ import (
 	"google.golang.org/grpc"
 	"google.golang.org/grpc/credentials/insecure"
 
-	"github.com/yorkie-team/yorkie/api"
 	"github.com/yorkie-team/yorkie/api/converter"
 	"github.com/yorkie-team/yorkie/api/types"
+	api "github.com/yorkie-team/yorkie/api/yorkie/v1"
 	"github.com/yorkie-team/yorkie/pkg/document"
 	"github.com/yorkie-team/yorkie/pkg/document/key"
 )
@@ -55,7 +55,7 @@ type Options struct {
 // Client is a client for admin service.
 type Client struct {
 	conn            *grpc.ClientConn
-	client          api.AdminClient
+	client          api.AdminServiceClient
 	dialOptions     []grpc.DialOption
 	authInterceptor *AuthInterceptor
 
@@ -114,7 +114,7 @@ func (c *Client) Dial(adminAddr string) error {
 	}
 
 	c.conn = conn
-	c.client = api.NewAdminClient(conn)
+	c.client = api.NewAdminServiceClient(conn)
 
 	return nil
 }
diff --git a/api/buf.yaml b/api/buf.yaml
new file mode 100644
index 00000000..0e4e648f
--- /dev/null
+++ b/api/buf.yaml
@@ -0,0 +1,13 @@
+version: v1
+breaking:
+  use:
+    - FILE
+lint:
+  use:
+    - DEFAULT
+  ignore_only:
+    # The linter requires that the zero value for all enums should be suffixed
+    # with _UNSPECIFIED. However, it is difficult to migrate the operations
+    # already stored in the DB, so we ignore the rule for now.
+    ENUM_ZERO_VALUE_SUFFIX:
+      - yorkie/v1/resources.proto
diff --git a/api/converter/from_bytes.go b/api/converter/from_bytes.go
index e3112117..b8dc09bd 100644
--- a/api/converter/from_bytes.go
+++ b/api/converter/from_bytes.go
@@ -21,7 +21,7 @@ import (
 
 	"github.com/gogo/protobuf/proto"
 
-	"github.com/yorkie-team/yorkie/api"
+	api "github.com/yorkie-team/yorkie/api/yorkie/v1"
 	"github.com/yorkie-team/yorkie/pkg/document/json"
 	"github.com/yorkie-team/yorkie/pkg/document/time"
 )
diff --git a/api/converter/from_pb.go b/api/converter/from_pb.go
index 390781b0..12e835f8 100644
--- a/api/converter/from_pb.go
+++ b/api/converter/from_pb.go
@@ -21,8 +21,8 @@ import (
 
 	protoTypes "github.com/gogo/protobuf/types"
 
-	"github.com/yorkie-team/yorkie/api"
 	"github.com/yorkie-team/yorkie/api/types"
+	api "github.com/yorkie-team/yorkie/api/yorkie/v1"
 	"github.com/yorkie-team/yorkie/pkg/document/change"
 	"github.com/yorkie-team/yorkie/pkg/document/json"
 	"github.com/yorkie-team/yorkie/pkg/document/key"
@@ -220,13 +220,13 @@ func FromDocumentKeys(pbKeys []string) []key.Key {
 // FromEventType converts the given Protobuf formats to model format.
 func FromEventType(pbDocEventType api.DocEventType) (types.DocEventType, error) {
 	switch pbDocEventType {
-	case api.DocEventType_DOCUMENTS_CHANGED:
+	case api.DocEventType_DOC_EVENT_TYPE_DOCUMENTS_CHANGED:
 		return types.DocumentsChangedEvent, nil
-	case api.DocEventType_DOCUMENTS_WATCHED:
+	case api.DocEventType_DOC_EVENT_TYPE_DOCUMENTS_WATCHED:
 		return types.DocumentsWatchedEvent, nil
-	case api.DocEventType_DOCUMENTS_UNWATCHED:
+	case api.DocEventType_DOC_EVENT_TYPE_DOCUMENTS_UNWATCHED:
 		return types.DocumentsUnwatchedEvent, nil
-	case api.DocEventType_PRESENCE_CHANGED:
+	case api.DocEventType_DOC_EVENT_TYPE_PRESENCE_CHANGED:
 		return types.PresenceChangedEvent, nil
 	}
 	return "", fmt.Errorf("%v: %w", pbDocEventType, ErrUnsupportedEventType)
@@ -577,7 +577,7 @@ func fromTimeTicket(pbTicket *api.TimeTicket) (*time.Ticket, error) {
 
 func fromElement(pbElement *api.JSONElementSimple) (json.Element, error) {
 	switch pbType := pbElement.Type; pbType {
-	case api.ValueType_JSON_OBJECT:
+	case api.ValueType_VALUE_TYPE_JSON_OBJECT:
 		createdAt, err := fromTimeTicket(pbElement.CreatedAt)
 		if err != nil {
 			return nil, err
@@ -586,7 +586,7 @@ func fromElement(pbElement *api.JSONElementSimple) (json.Element, error) {
 			json.NewRHTPriorityQueueMap(),
 			createdAt,
 		), nil
-	case api.ValueType_JSON_ARRAY:
+	case api.ValueType_VALUE_TYPE_JSON_ARRAY:
 		createdAt, err := fromTimeTicket(pbElement.CreatedAt)
 		if err != nil {
 			return nil, err
@@ -595,21 +595,21 @@ func fromElement(pbElement *api.JSONElementSimple) (json.Element, error) {
 			json.NewRGATreeList(),
 			createdAt,
 		), nil
-	case api.ValueType_NULL:
+	case api.ValueType_VALUE_TYPE_NULL:
 		fallthrough
-	case api.ValueType_BOOLEAN:
+	case api.ValueType_VALUE_TYPE_BOOLEAN:
 		fallthrough
-	case api.ValueType_INTEGER:
+	case api.ValueType_VALUE_TYPE_INTEGER:
 		fallthrough
-	case api.ValueType_LONG:
+	case api.ValueType_VALUE_TYPE_LONG:
 		fallthrough
-	case api.ValueType_DOUBLE:
+	case api.ValueType_VALUE_TYPE_DOUBLE:
 		fallthrough
-	case api.ValueType_STRING:
+	case api.ValueType_VALUE_TYPE_STRING:
 		fallthrough
-	case api.ValueType_BYTES:
+	case api.ValueType_VALUE_TYPE_BYTES:
 		fallthrough
-	case api.ValueType_DATE:
+	case api.ValueType_VALUE_TYPE_DATE:
 		valueType, err := fromPrimitiveValueType(pbElement.Type)
 		if err != nil {
 			return nil, err
@@ -622,7 +622,7 @@ func fromElement(pbElement *api.JSONElementSimple) (json.Element, error) {
 			json.ValueFromBytes(valueType, pbElement.Value),
 			createdAt,
 		), nil
-	case api.ValueType_TEXT:
+	case api.ValueType_VALUE_TYPE_TEXT:
 		createdAt, err := fromTimeTicket(pbElement.CreatedAt)
 		if err != nil {
 			return nil, err
@@ -631,7 +631,7 @@ func fromElement(pbElement *api.JSONElementSimple) (json.Element, error) {
 			json.NewRGATreeSplit(json.InitialTextNode()),
 			createdAt,
 		), nil
-	case api.ValueType_RICH_TEXT:
+	case api.ValueType_VALUE_TYPE_RICH_TEXT:
 		createdAt, err := fromTimeTicket(pbElement.CreatedAt)
 		if err != nil {
 			return nil, err
@@ -640,11 +640,11 @@ func fromElement(pbElement *api.JSONElementSimple) (json.Element, error) {
 			json.NewRGATreeSplit(json.InitialRichTextNode()),
 			createdAt,
 		), nil
-	case api.ValueType_INTEGER_CNT:
+	case api.ValueType_VALUE_TYPE_INTEGER_CNT:
 		fallthrough
-	case api.ValueType_LONG_CNT:
+	case api.ValueType_VALUE_TYPE_LONG_CNT:
 		fallthrough
-	case api.ValueType_DOUBLE_CNT:
+	case api.ValueType_VALUE_TYPE_DOUBLE_CNT:
 		counterType, err := fromCounterType(pbType)
 		if err != nil {
 			return nil, err
@@ -664,21 +664,21 @@ func fromElement(pbElement *api.JSONElementSimple) (json.Element, error) {
 
 func fromPrimitiveValueType(valueType api.ValueType) (json.ValueType, error) {
 	switch valueType {
-	case api.ValueType_NULL:
+	case api.ValueType_VALUE_TYPE_NULL:
 		return json.Null, nil
-	case api.ValueType_BOOLEAN:
+	case api.ValueType_VALUE_TYPE_BOOLEAN:
 		return json.Boolean, nil
-	case api.ValueType_INTEGER:
+	case api.ValueType_VALUE_TYPE_INTEGER:
 		return json.Integer, nil
-	case api.ValueType_LONG:
+	case api.ValueType_VALUE_TYPE_LONG:
 		return json.Long, nil
-	case api.ValueType_DOUBLE:
+	case api.ValueType_VALUE_TYPE_DOUBLE:
 		return json.Double, nil
-	case api.ValueType_STRING:
+	case api.ValueType_VALUE_TYPE_STRING:
 		return json.String, nil
-	case api.ValueType_BYTES:
+	case api.ValueType_VALUE_TYPE_BYTES:
 		return json.Bytes, nil
-	case api.ValueType_DATE:
+	case api.ValueType_VALUE_TYPE_DATE:
 		return json.Date, nil
 	}
 
@@ -687,11 +687,11 @@ func fromPrimitiveValueType(valueType api.ValueType) (json.ValueType, error) {
 
 func fromCounterType(valueType api.ValueType) (json.CounterType, error) {
 	switch valueType {
-	case api.ValueType_INTEGER_CNT:
+	case api.ValueType_VALUE_TYPE_INTEGER_CNT:
 		return json.IntegerCnt, nil
-	case api.ValueType_LONG_CNT:
+	case api.ValueType_VALUE_TYPE_LONG_CNT:
 		return json.LongCnt, nil
-	case api.ValueType_DOUBLE_CNT:
+	case api.ValueType_VALUE_TYPE_DOUBLE_CNT:
 		return json.DoubleCnt, nil
 	}
 
diff --git a/api/converter/to_bytes.go b/api/converter/to_bytes.go
index 90095e2a..d82415e1 100644
--- a/api/converter/to_bytes.go
+++ b/api/converter/to_bytes.go
@@ -22,7 +22,7 @@ import (
 
 	"github.com/gogo/protobuf/proto"
 
-	"github.com/yorkie-team/yorkie/api"
+	api "github.com/yorkie-team/yorkie/api/yorkie/v1"
 	"github.com/yorkie-team/yorkie/pkg/document/json"
 )
 
diff --git a/api/converter/to_pb.go b/api/converter/to_pb.go
index 0664d829..78a00b35 100644
--- a/api/converter/to_pb.go
+++ b/api/converter/to_pb.go
@@ -22,8 +22,8 @@ import (
 
 	protoTypes "github.com/gogo/protobuf/types"
 
-	"github.com/yorkie-team/yorkie/api"
 	"github.com/yorkie-team/yorkie/api/types"
+	api "github.com/yorkie-team/yorkie/api/yorkie/v1"
 	"github.com/yorkie-team/yorkie/pkg/document/change"
 	"github.com/yorkie-team/yorkie/pkg/document/json"
 	"github.com/yorkie-team/yorkie/pkg/document/key"
@@ -202,13 +202,13 @@ func ToClientsMap(clientsMap map[string][]types.Client) map[string]*api.Clients
 func ToDocEventType(eventType types.DocEventType) (api.DocEventType, error) {
 	switch eventType {
 	case types.DocumentsChangedEvent:
-		return api.DocEventType_DOCUMENTS_CHANGED, nil
+		return api.DocEventType_DOC_EVENT_TYPE_DOCUMENTS_CHANGED, nil
 	case types.DocumentsWatchedEvent:
-		return api.DocEventType_DOCUMENTS_WATCHED, nil
+		return api.DocEventType_DOC_EVENT_TYPE_DOCUMENTS_WATCHED, nil
 	case types.DocumentsUnwatchedEvent:
-		return api.DocEventType_DOCUMENTS_UNWATCHED, nil
+		return api.DocEventType_DOC_EVENT_TYPE_DOCUMENTS_UNWATCHED, nil
 	case types.PresenceChangedEvent:
-		return api.DocEventType_PRESENCE_CHANGED, nil
+		return api.DocEventType_DOC_EVENT_TYPE_PRESENCE_CHANGED, nil
 	default:
 		return 0, fmt.Errorf("%s: %w", eventType, ErrUnsupportedEventType)
 	}
@@ -421,12 +421,12 @@ func toJSONElementSimple(elem json.Element) (*api.JSONElementSimple, error) {
 	switch elem := elem.(type) {
 	case *json.Object:
 		return &api.JSONElementSimple{
-			Type:      api.ValueType_JSON_OBJECT,
+			Type:      api.ValueType_VALUE_TYPE_JSON_OBJECT,
 			CreatedAt: ToTimeTicket(elem.CreatedAt()),
 		}, nil
 	case *json.Array:
 		return &api.JSONElementSimple{
-			Type:      api.ValueType_JSON_ARRAY,
+			Type:      api.ValueType_VALUE_TYPE_JSON_ARRAY,
 			CreatedAt: ToTimeTicket(elem.CreatedAt()),
 		}, nil
 	case *json.Primitive:
@@ -442,12 +442,12 @@ func toJSONElementSimple(elem json.Element) (*api.JSONElementSimple, error) {
 		}, nil
 	case *json.Text:
 		return &api.JSONElementSimple{
-			Type:      api.ValueType_TEXT,
+			Type:      api.ValueType_VALUE_TYPE_TEXT,
 			CreatedAt: ToTimeTicket(elem.CreatedAt()),
 		}, nil
 	case *json.RichText:
 		return &api.JSONElementSimple{
-			Type:      api.ValueType_RICH_TEXT,
+			Type:      api.ValueType_VALUE_TYPE_RICH_TEXT,
 			CreatedAt: ToTimeTicket(elem.CreatedAt()),
 		}, nil
 	case *json.Counter:
@@ -487,21 +487,21 @@ func toCreatedAtMapByActor(
 func toValueType(valueType json.ValueType) (api.ValueType, error) {
 	switch valueType {
 	case json.Null:
-		return api.ValueType_NULL, nil
+		return api.ValueType_VALUE_TYPE_NULL, nil
 	case json.Boolean:
-		return api.ValueType_BOOLEAN, nil
+		return api.ValueType_VALUE_TYPE_BOOLEAN, nil
 	case json.Integer:
-		return api.ValueType_INTEGER, nil
+		return api.ValueType_VALUE_TYPE_INTEGER, nil
 	case json.Long:
-		return api.ValueType_LONG, nil
+		return api.ValueType_VALUE_TYPE_LONG, nil
 	case json.Double:
-		return api.ValueType_DOUBLE, nil
+		return api.ValueType_VALUE_TYPE_DOUBLE, nil
 	case json.String:
-		return api.ValueType_STRING, nil
+		return api.ValueType_VALUE_TYPE_STRING, nil
 	case json.Bytes:
-		return api.ValueType_BYTES, nil
+		return api.ValueType_VALUE_TYPE_BYTES, nil
 	case json.Date:
-		return api.ValueType_DATE, nil
+		return api.ValueType_VALUE_TYPE_DATE, nil
 	}
 
 	return 0, fmt.Errorf("%d, %w", valueType, ErrUnsupportedValueType)
@@ -510,11 +510,11 @@ func toValueType(valueType json.ValueType) (api.ValueType, error) {
 func toCounterType(valueType json.CounterType) (api.ValueType, error) {
 	switch valueType {
 	case json.IntegerCnt:
-		return api.ValueType_INTEGER_CNT, nil
+		return api.ValueType_VALUE_TYPE_INTEGER_CNT, nil
 	case json.LongCnt:
-		return api.ValueType_LONG_CNT, nil
+		return api.ValueType_VALUE_TYPE_LONG_CNT, nil
 	case json.DoubleCnt:
-		return api.ValueType_DOUBLE_CNT, nil
+		return api.ValueType_VALUE_TYPE_DOUBLE_CNT, nil
 	}
 
 	return 0, fmt.Errorf("%d, %w", valueType, ErrUnsupportedCounterType)
diff --git a/api/admin.pb.go b/api/yorkie/v1/admin.pb.go
similarity index 87%
rename from api/admin.pb.go
rename to api/yorkie/v1/admin.pb.go
index c171fa6b..efc27680 100644
--- a/api/admin.pb.go
+++ b/api/yorkie/v1/admin.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-gogo. DO NOT EDIT.
-// source: admin.proto
+// source: yorkie/v1/admin.proto
 
-package api
+package v1
 
 import (
 	context "context"
@@ -38,7 +38,7 @@ func (m *SignUpRequest) Reset()         { *m = SignUpRequest{} }
 func (m *SignUpRequest) String() string { return proto.CompactTextString(m) }
 func (*SignUpRequest) ProtoMessage()    {}
 func (*SignUpRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{0}
+	return fileDescriptor_7ef4cd0843a14163, []int{0}
 }
 func (m *SignUpRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -92,7 +92,7 @@ func (m *SignUpResponse) Reset()         { *m = SignUpResponse{} }
 func (m *SignUpResponse) String() string { return proto.CompactTextString(m) }
 func (*SignUpResponse) ProtoMessage()    {}
 func (*SignUpResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{1}
+	return fileDescriptor_7ef4cd0843a14163, []int{1}
 }
 func (m *SignUpResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -140,7 +140,7 @@ func (m *LogInRequest) Reset()         { *m = LogInRequest{} }
 func (m *LogInRequest) String() string { return proto.CompactTextString(m) }
 func (*LogInRequest) ProtoMessage()    {}
 func (*LogInRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{2}
+	return fileDescriptor_7ef4cd0843a14163, []int{2}
 }
 func (m *LogInRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -194,7 +194,7 @@ func (m *LogInResponse) Reset()         { *m = LogInResponse{} }
 func (m *LogInResponse) String() string { return proto.CompactTextString(m) }
 func (*LogInResponse) ProtoMessage()    {}
 func (*LogInResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{3}
+	return fileDescriptor_7ef4cd0843a14163, []int{3}
 }
 func (m *LogInResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -241,7 +241,7 @@ func (m *CreateProjectRequest) Reset()         { *m = CreateProjectRequest{} }
 func (m *CreateProjectRequest) String() string { return proto.CompactTextString(m) }
 func (*CreateProjectRequest) ProtoMessage()    {}
 func (*CreateProjectRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{4}
+	return fileDescriptor_7ef4cd0843a14163, []int{4}
 }
 func (m *CreateProjectRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -288,7 +288,7 @@ func (m *CreateProjectResponse) Reset()         { *m = CreateProjectResponse{} }
 func (m *CreateProjectResponse) String() string { return proto.CompactTextString(m) }
 func (*CreateProjectResponse) ProtoMessage()    {}
 func (*CreateProjectResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{5}
+	return fileDescriptor_7ef4cd0843a14163, []int{5}
 }
 func (m *CreateProjectResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -335,7 +335,7 @@ func (m *GetProjectRequest) Reset()         { *m = GetProjectRequest{} }
 func (m *GetProjectRequest) String() string { return proto.CompactTextString(m) }
 func (*GetProjectRequest) ProtoMessage()    {}
 func (*GetProjectRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{6}
+	return fileDescriptor_7ef4cd0843a14163, []int{6}
 }
 func (m *GetProjectRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -382,7 +382,7 @@ func (m *GetProjectResponse) Reset()         { *m = GetProjectResponse{} }
 func (m *GetProjectResponse) String() string { return proto.CompactTextString(m) }
 func (*GetProjectResponse) ProtoMessage()    {}
 func (*GetProjectResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{7}
+	return fileDescriptor_7ef4cd0843a14163, []int{7}
 }
 func (m *GetProjectResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -428,7 +428,7 @@ func (m *ListProjectsRequest) Reset()         { *m = ListProjectsRequest{} }
 func (m *ListProjectsRequest) String() string { return proto.CompactTextString(m) }
 func (*ListProjectsRequest) ProtoMessage()    {}
 func (*ListProjectsRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{8}
+	return fileDescriptor_7ef4cd0843a14163, []int{8}
 }
 func (m *ListProjectsRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -468,7 +468,7 @@ func (m *ListProjectsResponse) Reset()         { *m = ListProjectsResponse{} }
 func (m *ListProjectsResponse) String() string { return proto.CompactTextString(m) }
 func (*ListProjectsResponse) ProtoMessage()    {}
 func (*ListProjectsResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{9}
+	return fileDescriptor_7ef4cd0843a14163, []int{9}
 }
 func (m *ListProjectsResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -516,7 +516,7 @@ func (m *UpdateProjectRequest) Reset()         { *m = UpdateProjectRequest{} }
 func (m *UpdateProjectRequest) String() string { return proto.CompactTextString(m) }
 func (*UpdateProjectRequest) ProtoMessage()    {}
 func (*UpdateProjectRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{10}
+	return fileDescriptor_7ef4cd0843a14163, []int{10}
 }
 func (m *UpdateProjectRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -570,7 +570,7 @@ func (m *UpdateProjectResponse) Reset()         { *m = UpdateProjectResponse{} }
 func (m *UpdateProjectResponse) String() string { return proto.CompactTextString(m) }
 func (*UpdateProjectResponse) ProtoMessage()    {}
 func (*UpdateProjectResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{11}
+	return fileDescriptor_7ef4cd0843a14163, []int{11}
 }
 func (m *UpdateProjectResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -620,7 +620,7 @@ func (m *ListDocumentsRequest) Reset()         { *m = ListDocumentsRequest{} }
 func (m *ListDocumentsRequest) String() string { return proto.CompactTextString(m) }
 func (*ListDocumentsRequest) ProtoMessage()    {}
 func (*ListDocumentsRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{12}
+	return fileDescriptor_7ef4cd0843a14163, []int{12}
 }
 func (m *ListDocumentsRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -688,7 +688,7 @@ func (m *ListDocumentsResponse) Reset()         { *m = ListDocumentsResponse{} }
 func (m *ListDocumentsResponse) String() string { return proto.CompactTextString(m) }
 func (*ListDocumentsResponse) ProtoMessage()    {}
 func (*ListDocumentsResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{13}
+	return fileDescriptor_7ef4cd0843a14163, []int{13}
 }
 func (m *ListDocumentsResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -736,7 +736,7 @@ func (m *GetDocumentRequest) Reset()         { *m = GetDocumentRequest{} }
 func (m *GetDocumentRequest) String() string { return proto.CompactTextString(m) }
 func (*GetDocumentRequest) ProtoMessage()    {}
 func (*GetDocumentRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{14}
+	return fileDescriptor_7ef4cd0843a14163, []int{14}
 }
 func (m *GetDocumentRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -790,7 +790,7 @@ func (m *GetDocumentResponse) Reset()         { *m = GetDocumentResponse{} }
 func (m *GetDocumentResponse) String() string { return proto.CompactTextString(m) }
 func (*GetDocumentResponse) ProtoMessage()    {}
 func (*GetDocumentResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{15}
+	return fileDescriptor_7ef4cd0843a14163, []int{15}
 }
 func (m *GetDocumentResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -839,7 +839,7 @@ func (m *GetSnapshotMetaRequest) Reset()         { *m = GetSnapshotMetaRequest{}
 func (m *GetSnapshotMetaRequest) String() string { return proto.CompactTextString(m) }
 func (*GetSnapshotMetaRequest) ProtoMessage()    {}
 func (*GetSnapshotMetaRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{16}
+	return fileDescriptor_7ef4cd0843a14163, []int{16}
 }
 func (m *GetSnapshotMetaRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -901,7 +901,7 @@ func (m *GetSnapshotMetaResponse) Reset()         { *m = GetSnapshotMetaResponse
 func (m *GetSnapshotMetaResponse) String() string { return proto.CompactTextString(m) }
 func (*GetSnapshotMetaResponse) ProtoMessage()    {}
 func (*GetSnapshotMetaResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{17}
+	return fileDescriptor_7ef4cd0843a14163, []int{17}
 }
 func (m *GetSnapshotMetaResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -957,7 +957,7 @@ func (m *SearchDocumentsRequest) Reset()         { *m = SearchDocumentsRequest{}
 func (m *SearchDocumentsRequest) String() string { return proto.CompactTextString(m) }
 func (*SearchDocumentsRequest) ProtoMessage()    {}
 func (*SearchDocumentsRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{18}
+	return fileDescriptor_7ef4cd0843a14163, []int{18}
 }
 func (m *SearchDocumentsRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -1019,7 +1019,7 @@ func (m *SearchDocumentsResponse) Reset()         { *m = SearchDocumentsResponse
 func (m *SearchDocumentsResponse) String() string { return proto.CompactTextString(m) }
 func (*SearchDocumentsResponse) ProtoMessage()    {}
 func (*SearchDocumentsResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{19}
+	return fileDescriptor_7ef4cd0843a14163, []int{19}
 }
 func (m *SearchDocumentsResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -1077,7 +1077,7 @@ func (m *ListChangesRequest) Reset()         { *m = ListChangesRequest{} }
 func (m *ListChangesRequest) String() string { return proto.CompactTextString(m) }
 func (*ListChangesRequest) ProtoMessage()    {}
 func (*ListChangesRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{20}
+	return fileDescriptor_7ef4cd0843a14163, []int{20}
 }
 func (m *ListChangesRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -1152,7 +1152,7 @@ func (m *ListChangesResponse) Reset()         { *m = ListChangesResponse{} }
 func (m *ListChangesResponse) String() string { return proto.CompactTextString(m) }
 func (*ListChangesResponse) ProtoMessage()    {}
 func (*ListChangesResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_73a7fc70dcc2027c, []int{21}
+	return fileDescriptor_7ef4cd0843a14163, []int{21}
 }
 func (m *ListChangesResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -1189,89 +1189,91 @@ func (m *ListChangesResponse) GetChanges() []*Change {
 }
 
 func init() {
-	proto.RegisterType((*SignUpRequest)(nil), "api.SignUpRequest")
-	proto.RegisterType((*SignUpResponse)(nil), "api.SignUpResponse")
-	proto.RegisterType((*LogInRequest)(nil), "api.LogInRequest")
-	proto.RegisterType((*LogInResponse)(nil), "api.LogInResponse")
-	proto.RegisterType((*CreateProjectRequest)(nil), "api.CreateProjectRequest")
-	proto.RegisterType((*CreateProjectResponse)(nil), "api.CreateProjectResponse")
-	proto.RegisterType((*GetProjectRequest)(nil), "api.GetProjectRequest")
-	proto.RegisterType((*GetProjectResponse)(nil), "api.GetProjectResponse")
-	proto.RegisterType((*ListProjectsRequest)(nil), "api.ListProjectsRequest")
-	proto.RegisterType((*ListProjectsResponse)(nil), "api.ListProjectsResponse")
-	proto.RegisterType((*UpdateProjectRequest)(nil), "api.UpdateProjectRequest")
-	proto.RegisterType((*UpdateProjectResponse)(nil), "api.UpdateProjectResponse")
-	proto.RegisterType((*ListDocumentsRequest)(nil), "api.ListDocumentsRequest")
-	proto.RegisterType((*ListDocumentsResponse)(nil), "api.ListDocumentsResponse")
-	proto.RegisterType((*GetDocumentRequest)(nil), "api.GetDocumentRequest")
-	proto.RegisterType((*GetDocumentResponse)(nil), "api.GetDocumentResponse")
-	proto.RegisterType((*GetSnapshotMetaRequest)(nil), "api.GetSnapshotMetaRequest")
-	proto.RegisterType((*GetSnapshotMetaResponse)(nil), "api.GetSnapshotMetaResponse")
-	proto.RegisterType((*SearchDocumentsRequest)(nil), "api.SearchDocumentsRequest")
-	proto.RegisterType((*SearchDocumentsResponse)(nil), "api.SearchDocumentsResponse")
-	proto.RegisterType((*ListChangesRequest)(nil), "api.ListChangesRequest")
-	proto.RegisterType((*ListChangesResponse)(nil), "api.ListChangesResponse")
-}
-
-func init() { proto.RegisterFile("admin.proto", fileDescriptor_73a7fc70dcc2027c) }
-
-var fileDescriptor_73a7fc70dcc2027c = []byte{
-	// 877 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xcd, 0x6e, 0xdb, 0x46,
-	0x10, 0x36, 0x25, 0x31, 0x96, 0x86, 0x72, 0xd2, 0xac, 0x65, 0x9b, 0xa1, 0x53, 0x45, 0x5e, 0xc0,
-	0xad, 0xd0, 0x83, 0x6b, 0x28, 0xd7, 0x00, 0x69, 0xed, 0xd6, 0x6a, 0x90, 0x34, 0x28, 0x48, 0xf8,
-	0xd2, 0x1e, 0x84, 0x8d, 0xb8, 0x91, 0xd9, 0x48, 0x24, 0xb5, 0x4b, 0x26, 0x70, 0x6e, 0x7d, 0x89,
-	0xa2, 0x2f, 0xd3, 0x7b, 0x8f, 0x7d, 0x84, 0xc2, 0x7d, 0x8d, 0x1e, 0x0a, 0xee, 0x0f, 0xcd, 0xbf,
-	0x06, 0x71, 0x93, 0x9b, 0xf8, 0xcd, 0xec, 0x37, 0xf3, 0xed, 0xce, 0x8f, 0xc0, 0x22, 0xfe, 0x2a,
-	0x08, 0x8f, 0x62, 0x16, 0x25, 0x11, 0x6a, 0x93, 0x38, 0x70, 0xee, 0x30, 0xca, 0xa3, 0x94, 0xcd,
-	0x29, 0x97, 0x28, 0x9e, 0xc2, 0x96, 0x17, 0x2c, 0xc2, 0xf3, 0xd8, 0xa5, 0xeb, 0x94, 0xf2, 0x04,
-	0x39, 0xd0, 0x4d, 0x39, 0x65, 0x21, 0x59, 0x51, 0xdb, 0x18, 0x19, 0xe3, 0x9e, 0x9b, 0x7f, 0x67,
-	0xb6, 0x98, 0x70, 0xfe, 0x26, 0x62, 0xbe, 0xdd, 0x92, 0x36, 0xfd, 0x8d, 0xbf, 0x84, 0xdb, 0x9a,
-	0x88, 0xc7, 0x51, 0xc8, 0x29, 0xfa, 0x14, 0x3a, 0xd9, 0x49, 0xc1, 0x62, 0x4d, 0x7a, 0x47, 0x24,
-	0x0e, 0x8e, 0xce, 0x39, 0x65, 0xae, 0x80, 0xf1, 0x19, 0xf4, 0x9f, 0x45, 0x8b, 0x27, 0xe1, 0x87,
-	0x06, 0x3e, 0x84, 0x2d, 0xc5, 0xa3, 0xe2, 0x0e, 0xc0, 0x4c, 0xa2, 0x57, 0x34, 0x54, 0x2c, 0xf2,
-	0x03, 0x7f, 0x01, 0x83, 0x53, 0x46, 0x49, 0x42, 0x7f, 0x60, 0xd1, 0xcf, 0x74, 0x9e, 0xe8, 0xb0,
-	0x08, 0x3a, 0x85, 0x90, 0xe2, 0x37, 0x7e, 0x0c, 0x3b, 0x15, 0x5f, 0x45, 0xfd, 0x19, 0x6c, 0xc6,
-	0x12, 0x52, 0xaa, 0xfa, 0x42, 0x95, 0x76, 0xd3, 0x46, 0xfc, 0x39, 0xdc, 0x9d, 0xd2, 0xe4, 0x3d,
-	0x22, 0x3d, 0x02, 0x54, 0x74, 0xbc, 0x61, 0x98, 0x1d, 0xd8, 0x7e, 0x16, 0x70, 0x7d, 0x9c, 0xab,
-	0x40, 0xf8, 0x2b, 0x18, 0x94, 0x61, 0x45, 0x3b, 0x86, 0xae, 0x3a, 0xc9, 0x6d, 0x63, 0xd4, 0xae,
-	0xf1, 0xe6, 0x56, 0xfc, 0x13, 0x0c, 0xce, 0x63, 0xbf, 0x7e, 0x59, 0xb7, 0xa1, 0x15, 0xf8, 0x4a,
-	0x40, 0x2b, 0xf0, 0xd1, 0x43, 0xb8, 0xf5, 0x32, 0xa0, 0x4b, 0x9f, 0x8b, 0x57, 0xb1, 0x26, 0xfb,
-	0xf2, 0x91, 0xb3, 0xa3, 0xe4, 0xc5, 0x52, 0x9f, 0x3e, 0x13, 0x2e, 0xae, 0x72, 0xcd, 0x6e, 0xb7,
-	0x42, 0x7e, 0x43, 0xd9, 0xbf, 0x1a, 0x52, 0xe0, 0x37, 0xd1, 0x3c, 0x5d, 0xd1, 0x30, 0x17, 0x8e,
-	0x0e, 0xa0, 0xaf, 0x7c, 0x66, 0x85, 0x9b, 0xb6, 0x14, 0xf6, 0x3c, 0xab, 0xa4, 0x07, 0x60, 0xc5,
-	0x8c, 0xbe, 0x0e, 0xa2, 0x94, 0xcf, 0x02, 0x5d, 0x4c, 0xa0, 0xa1, 0x27, 0x3e, 0xda, 0x87, 0x5e,
-	0x4c, 0x16, 0x74, 0xc6, 0x83, 0xb7, 0xd4, 0x6e, 0x8f, 0x8c, 0xb1, 0x99, 0xd5, 0xda, 0x82, 0x7a,
-	0xc1, 0xdb, 0xac, 0xa4, 0x21, 0xe0, 0xb3, 0x97, 0x11, 0x7b, 0x43, 0x98, 0x6f, 0x77, 0x46, 0xc6,
-	0xb8, 0xeb, 0xf6, 0x02, 0x7e, 0x26, 0x01, 0xfc, 0x14, 0x76, 0x2a, 0x79, 0x29, 0x65, 0x13, 0xe8,
-	0xf9, 0x1a, 0x54, 0x57, 0x3f, 0x10, 0xda, 0xb4, 0xab, 0x97, 0xae, 0x56, 0x84, 0x5d, 0xba, 0xd7,
-	0x6e, 0xf8, 0x47, 0x51, 0x1a, 0xda, 0xe1, 0x06, 0x12, 0x0f, 0xa0, 0xaf, 0x59, 0x66, 0xaf, 0xe8,
-	0xa5, 0xd2, 0x68, 0x69, 0xec, 0x29, 0xbd, 0xc4, 0x53, 0xd8, 0x2e, 0x71, 0xab, 0x34, 0x8f, 0xa1,
-	0xab, 0xbd, 0xd4, 0x0b, 0x34, 0x67, 0x99, 0x7b, 0xe1, 0x5f, 0x0c, 0xd8, 0x9d, 0xd2, 0xc4, 0x0b,
-	0x49, 0xcc, 0x2f, 0xa2, 0xe4, 0x7b, 0x9a, 0x90, 0x8f, 0x9a, 0x29, 0x3a, 0x00, 0xe0, 0x94, 0xbd,
-	0xa6, 0x6c, 0xc6, 0xe9, 0x5a, 0xbc, 0x47, 0xfb, 0xa4, 0x75, 0x6c, 0xb8, 0x3d, 0x89, 0x7a, 0x74,
-	0x8d, 0x3d, 0xd8, 0xab, 0xa5, 0xa0, 0x04, 0x39, 0xd0, 0xe5, 0x0a, 0x17, 0xf1, 0xfb, 0x6e, 0xfe,
-	0x8d, 0xee, 0xc3, 0xe6, 0x92, 0xac, 0xe2, 0x88, 0x25, 0x22, 0xae, 0xa4, 0xd5, 0x10, 0x0e, 0x61,
-	0xd7, 0xa3, 0x84, 0xcd, 0x2f, 0xfe, 0x4f, 0x91, 0x0d, 0xc0, 0x5c, 0xa7, 0x94, 0x69, 0x41, 0xf2,
-	0xe3, 0x9d, 0x95, 0x85, 0x43, 0xd8, 0xab, 0xc5, 0x53, 0x22, 0x1e, 0x80, 0x95, 0x44, 0x09, 0x59,
-	0xce, 0xe6, 0x51, 0xaa, 0x1e, 0xc6, 0x74, 0x41, 0x40, 0xa7, 0x19, 0x52, 0xae, 0xae, 0xd6, 0xfb,
-	0x55, 0xd7, 0xef, 0x06, 0xa0, 0xac, 0x56, 0x4f, 0x2f, 0x48, 0xb8, 0xa0, 0xfc, 0xe3, 0x3e, 0xda,
-	0x61, 0xc6, 0xa2, 0x9a, 0xac, 0xfc, 0x6c, 0x79, 0xf3, 0x79, 0x74, 0x5d, 0xbe, 0x90, 0xce, 0x3b,
-	0x5b, 0xcd, 0xac, 0xb6, 0xda, 0x23, 0x39, 0xfa, 0xf2, 0xf4, 0xd5, 0x5d, 0x1d, 0xc2, 0xe6, 0x5c,
-	0x42, 0xaa, 0xcd, 0x2c, 0x71, 0x11, 0xd2, 0xcd, 0xd5, 0xb6, 0xc9, 0x3f, 0x26, 0x98, 0x5f, 0x67,
-	0xbb, 0x31, 0x9b, 0x60, 0x72, 0x6d, 0x21, 0x24, 0x3c, 0x4b, 0xcb, 0xd0, 0xd9, 0x2e, 0x61, 0x32,
-	0x06, 0xde, 0x40, 0xc7, 0x60, 0x8a, 0x95, 0x83, 0xee, 0x0a, 0x7b, 0x71, 0x8d, 0x39, 0xa8, 0x08,
-	0xe5, 0x27, 0xbe, 0x83, 0xad, 0xd2, 0x46, 0x41, 0xf7, 0x64, 0x5e, 0x0d, 0x1b, 0xc9, 0x71, 0x9a,
-	0x4c, 0x39, 0xd3, 0xb7, 0xd0, 0x2f, 0x0e, 0x77, 0x64, 0xcb, 0x78, 0xf5, 0x35, 0xe0, 0xdc, 0x6b,
-	0xb0, 0xe4, 0x34, 0x8f, 0x01, 0xae, 0x17, 0x0f, 0xda, 0x15, 0xae, 0xb5, 0x95, 0xe5, 0xec, 0xd5,
-	0xf0, 0xa2, 0xa2, 0xd2, 0x14, 0x57, 0x8a, 0x9a, 0xd6, 0x86, 0x52, 0xd4, 0x38, 0xf4, 0x25, 0x53,
-	0x69, 0x6a, 0xa2, 0xeb, 0xc4, 0xab, 0xcd, 0xa7, 0x98, 0x1a, 0x87, 0x2c, 0xde, 0x40, 0x27, 0x60,
-	0x15, 0xc6, 0x1a, 0xca, 0xb3, 0xaf, 0x0c, 0x51, 0xc7, 0xae, 0x1b, 0x72, 0x8e, 0xe7, 0x70, 0xa7,
-	0x32, 0x4d, 0xd0, 0xbe, 0x76, 0x6f, 0x18, 0x73, 0xce, 0xfd, 0x66, 0x63, 0x91, 0xaf, 0xd2, 0xd8,
-	0x8a, 0xaf, 0x79, 0xbc, 0x28, 0xbe, 0xff, 0x98, 0x05, 0x52, 0x63, 0xa1, 0xf0, 0x95, 0xc6, 0x7a,
-	0x27, 0x3b, 0x76, 0xdd, 0xa0, 0x39, 0x4e, 0x3e, 0xf9, 0xe3, 0x6a, 0x68, 0xfc, 0x79, 0x35, 0x34,
-	0xfe, 0xba, 0x1a, 0x1a, 0xbf, 0xfd, 0x3d, 0xdc, 0x78, 0x71, 0x4b, 0xfc, 0x1b, 0x7c, 0xf8, 0x6f,
-	0x00, 0x00, 0x00, 0xff, 0xff, 0x79, 0xe9, 0x6f, 0x1e, 0x32, 0x0a, 0x00, 0x00,
+	proto.RegisterType((*SignUpRequest)(nil), "yorkie.v1.SignUpRequest")
+	proto.RegisterType((*SignUpResponse)(nil), "yorkie.v1.SignUpResponse")
+	proto.RegisterType((*LogInRequest)(nil), "yorkie.v1.LogInRequest")
+	proto.RegisterType((*LogInResponse)(nil), "yorkie.v1.LogInResponse")
+	proto.RegisterType((*CreateProjectRequest)(nil), "yorkie.v1.CreateProjectRequest")
+	proto.RegisterType((*CreateProjectResponse)(nil), "yorkie.v1.CreateProjectResponse")
+	proto.RegisterType((*GetProjectRequest)(nil), "yorkie.v1.GetProjectRequest")
+	proto.RegisterType((*GetProjectResponse)(nil), "yorkie.v1.GetProjectResponse")
+	proto.RegisterType((*ListProjectsRequest)(nil), "yorkie.v1.ListProjectsRequest")
+	proto.RegisterType((*ListProjectsResponse)(nil), "yorkie.v1.ListProjectsResponse")
+	proto.RegisterType((*UpdateProjectRequest)(nil), "yorkie.v1.UpdateProjectRequest")
+	proto.RegisterType((*UpdateProjectResponse)(nil), "yorkie.v1.UpdateProjectResponse")
+	proto.RegisterType((*ListDocumentsRequest)(nil), "yorkie.v1.ListDocumentsRequest")
+	proto.RegisterType((*ListDocumentsResponse)(nil), "yorkie.v1.ListDocumentsResponse")
+	proto.RegisterType((*GetDocumentRequest)(nil), "yorkie.v1.GetDocumentRequest")
+	proto.RegisterType((*GetDocumentResponse)(nil), "yorkie.v1.GetDocumentResponse")
+	proto.RegisterType((*GetSnapshotMetaRequest)(nil), "yorkie.v1.GetSnapshotMetaRequest")
+	proto.RegisterType((*GetSnapshotMetaResponse)(nil), "yorkie.v1.GetSnapshotMetaResponse")
+	proto.RegisterType((*SearchDocumentsRequest)(nil), "yorkie.v1.SearchDocumentsRequest")
+	proto.RegisterType((*SearchDocumentsResponse)(nil), "yorkie.v1.SearchDocumentsResponse")
+	proto.RegisterType((*ListChangesRequest)(nil), "yorkie.v1.ListChangesRequest")
+	proto.RegisterType((*ListChangesResponse)(nil), "yorkie.v1.ListChangesResponse")
+}
+
+func init() { proto.RegisterFile("yorkie/v1/admin.proto", fileDescriptor_7ef4cd0843a14163) }
+
+var fileDescriptor_7ef4cd0843a14163 = []byte{
+	// 912 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xdd, 0x6e, 0x1b, 0x45,
+	0x14, 0xce, 0x3a, 0x76, 0x62, 0x1f, 0x3b, 0xad, 0x3a, 0x75, 0x12, 0x77, 0x69, 0x1d, 0x7b, 0x50,
+	0x45, 0x04, 0xc8, 0x25, 0x41, 0x20, 0x10, 0x48, 0x88, 0x04, 0x12, 0x55, 0xfd, 0x11, 0xdd, 0x25,
+	0x37, 0xb9, 0xb1, 0xb6, 0xde, 0x53, 0x67, 0x49, 0xbc, 0xbb, 0x9e, 0x59, 0xbb, 0x4a, 0xef, 0xb8,
+	0xe2, 0x0d, 0x10, 0x2f, 0xc3, 0x3d, 0x97, 0x3c, 0x02, 0x0a, 0x2f, 0x82, 0x76, 0x67, 0x66, 0x33,
+	0xb3, 0xfe, 0x11, 0x4d, 0x7b, 0xe7, 0x3d, 0xe7, 0x3b, 0xdf, 0xf9, 0x9d, 0x73, 0x0c, 0x9b, 0x97,
+	0x11, 0x3b, 0x0f, 0xf0, 0xd1, 0x74, 0xef, 0x91, 0xe7, 0x8f, 0x82, 0xb0, 0x17, 0xb3, 0x28, 0x89,
+	0x48, 0x4d, 0x88, 0x7b, 0xd3, 0x3d, 0xfb, 0xde, 0x35, 0x82, 0x21, 0x8f, 0x26, 0x6c, 0x80, 0x5c,
+	0xa0, 0xe8, 0x31, 0x6c, 0xb8, 0xc1, 0x30, 0x3c, 0x89, 0x1d, 0x1c, 0x4f, 0x90, 0x27, 0xc4, 0x86,
+	0xea, 0x84, 0x23, 0x0b, 0xbd, 0x11, 0xb6, 0xac, 0x8e, 0xb5, 0x5b, 0x73, 0xf2, 0xef, 0x54, 0x17,
+	0x7b, 0x9c, 0xbf, 0x8e, 0x98, 0xdf, 0x2a, 0x09, 0x9d, 0xfa, 0xa6, 0x5f, 0xc0, 0x2d, 0x45, 0xc4,
+	0xe3, 0x28, 0xe4, 0x48, 0x3e, 0x84, 0x72, 0x6a, 0x99, 0xb1, 0xd4, 0xf7, 0x6f, 0xf7, 0xf2, 0x78,
+	0x7a, 0x27, 0x1c, 0x99, 0x93, 0x29, 0xe9, 0x11, 0x34, 0x9e, 0x46, 0xc3, 0xc7, 0xe1, 0xbb, 0xba,
+	0x7f, 0x08, 0x1b, 0x92, 0x47, 0x7a, 0x6f, 0x42, 0x25, 0x89, 0xce, 0x31, 0x94, 0x2c, 0xe2, 0x83,
+	0x7e, 0x0c, 0xcd, 0x43, 0x86, 0x5e, 0x82, 0x3f, 0xb1, 0xe8, 0x17, 0x1c, 0x24, 0xca, 0x2d, 0x81,
+	0xb2, 0xe6, 0x32, 0xfb, 0x4d, 0x7f, 0x84, 0xcd, 0x02, 0x56, 0x52, 0x7f, 0x0a, 0xeb, 0xb1, 0x10,
+	0xc9, 0xdc, 0x88, 0x96, 0x9b, 0x02, 0x2b, 0x08, 0xfd, 0x08, 0xee, 0x1c, 0x63, 0xf2, 0x3f, 0xfc,
+	0x1d, 0x00, 0xd1, 0x81, 0x37, 0x72, 0xb6, 0x09, 0x77, 0x9f, 0x06, 0x5c, 0x91, 0x70, 0xe9, 0x8e,
+	0x1e, 0x41, 0xd3, 0x14, 0x4b, 0xf2, 0x1e, 0x54, 0xa5, 0x25, 0x6f, 0x59, 0x9d, 0xd5, 0x05, 0xec,
+	0x39, 0x86, 0x7a, 0xd0, 0x3c, 0x89, 0xfd, 0xd9, 0xf2, 0xdd, 0x82, 0x52, 0xe0, 0xcb, 0x64, 0x4a,
+	0x81, 0x4f, 0xbe, 0x86, 0xb5, 0x57, 0x01, 0x5e, 0xf8, 0x3c, 0xeb, 0x53, 0x7d, 0xbf, 0xab, 0x37,
+	0x3f, 0x25, 0xf0, 0x5e, 0x5e, 0x28, 0x8e, 0xa3, 0x0c, 0xe8, 0x48, 0x83, 0xb4, 0xea, 0x05, 0x17,
+	0x37, 0x2a, 0xc4, 0xef, 0x96, 0x48, 0xf9, 0x87, 0x68, 0x30, 0x19, 0x61, 0x98, 0x97, 0x82, 0x74,
+	0xa1, 0x21, 0x31, 0x7d, 0xad, 0x03, 0x75, 0x29, 0x7b, 0x9e, 0xce, 0xd9, 0x0e, 0xd4, 0x63, 0x86,
+	0xd3, 0x20, 0x9a, 0xf0, 0x7e, 0xa0, 0x46, 0x0d, 0x94, 0xe8, 0xb1, 0x4f, 0x3e, 0x80, 0x5a, 0xec,
+	0x0d, 0xb1, 0xcf, 0x83, 0x37, 0xd8, 0x5a, 0xed, 0x58, 0xbb, 0x95, 0x74, 0x12, 0x87, 0xe8, 0x06,
+	0x6f, 0x90, 0x3c, 0x00, 0x08, 0x78, 0xff, 0x55, 0xc4, 0x5e, 0x7b, 0xcc, 0x6f, 0x95, 0x3b, 0xd6,
+	0x6e, 0xd5, 0xa9, 0x05, 0xfc, 0x48, 0x08, 0xe8, 0x0b, 0xd8, 0x2c, 0xc4, 0x25, 0xf3, 0xfb, 0x0a,
+	0x6a, 0xbe, 0x12, 0xca, 0x66, 0xd8, 0x5a, 0x86, 0xca, 0xc0, 0x9d, 0x8c, 0x46, 0x1e, 0xbb, 0x74,
+	0xae, 0xc1, 0xf4, 0x34, 0x1b, 0x1c, 0x05, 0x78, 0x8b, 0x44, 0xbb, 0xd0, 0x50, 0x2c, 0xfd, 0x73,
+	0xbc, 0x94, 0x99, 0xd6, 0x95, 0xec, 0x09, 0x5e, 0xd2, 0x67, 0x70, 0xd7, 0xe0, 0x96, 0xc1, 0x7e,
+	0x09, 0x55, 0x85, 0x92, 0xdd, 0x58, 0x16, 0x6b, 0x8e, 0xa5, 0xbf, 0x5a, 0xb0, 0x75, 0x8c, 0x89,
+	0x1b, 0x7a, 0x31, 0x3f, 0x8b, 0x92, 0x67, 0x98, 0x78, 0xef, 0x35, 0x5e, 0xd2, 0x05, 0xe0, 0xc8,
+	0xa6, 0xc8, 0xfa, 0x1c, 0xc7, 0x59, 0x6f, 0x56, 0x0f, 0x4a, 0x9f, 0x59, 0x4e, 0x4d, 0x48, 0x5d,
+	0x1c, 0x53, 0x17, 0xb6, 0x67, 0x42, 0x90, 0x69, 0xd9, 0x50, 0xe5, 0x52, 0x9e, 0xf9, 0x6f, 0x38,
+	0xf9, 0x37, 0xb9, 0x0f, 0xeb, 0x17, 0xde, 0x28, 0x8e, 0x58, 0x92, 0xf9, 0x15, 0xb4, 0x4a, 0x44,
+	0x43, 0xd8, 0x72, 0xd1, 0x63, 0x83, 0xb3, 0x9b, 0x0c, 0x5c, 0x13, 0x2a, 0xe3, 0x09, 0x32, 0x95,
+	0x90, 0xf8, 0x58, 0x3a, 0x65, 0x34, 0x81, 0xed, 0x19, 0x7f, 0x32, 0x89, 0x1d, 0xa8, 0x27, 0x51,
+	0xe2, 0x5d, 0xf4, 0x07, 0xd1, 0x44, 0xb6, 0xa7, 0xe2, 0x40, 0x26, 0x3a, 0x4c, 0x25, 0xe6, 0xa4,
+	0x95, 0xde, 0x66, 0xd2, 0xfe, 0xb4, 0x80, 0xa4, 0xd3, 0x7b, 0x78, 0xe6, 0x85, 0x43, 0xe4, 0xef,
+	0xb7, 0x75, 0x0f, 0x53, 0x16, 0xf9, 0xec, 0xcc, 0xe6, 0xe5, 0xcf, 0xd1, 0xc5, 0xb1, 0x59, 0x96,
+	0xf2, 0xd2, 0xc7, 0x57, 0x29, 0x3e, 0xbe, 0x03, 0xb1, 0x1e, 0xf3, 0xf0, 0x65, 0xc5, 0x3e, 0x81,
+	0xf5, 0x81, 0x10, 0xc9, 0x87, 0x77, 0x47, 0x2b, 0x87, 0x00, 0x3b, 0x0a, 0xb1, 0xff, 0xdb, 0x3a,
+	0x34, 0xbe, 0x4f, 0xef, 0xac, 0x8b, 0x6c, 0x1a, 0x0c, 0x90, 0x7c, 0x07, 0x6b, 0xe2, 0xf2, 0x91,
+	0x96, 0x66, 0x66, 0x5c, 0x55, 0xfb, 0xde, 0x1c, 0x8d, 0x70, 0x4e, 0x57, 0xc8, 0xb7, 0x50, 0xc9,
+	0x6e, 0x17, 0xd9, 0xd6, 0x50, 0xfa, 0x55, 0xb4, 0x5b, 0xb3, 0x8a, 0xdc, 0xfa, 0x67, 0xd8, 0x30,
+	0xce, 0x14, 0xd9, 0xd1, 0x83, 0x9f, 0x73, 0xec, 0xec, 0xce, 0x62, 0x40, 0xce, 0xfa, 0x02, 0x1a,
+	0xfa, 0xc5, 0x20, 0x6d, 0x3d, 0x82, 0xd9, 0x0b, 0x63, 0xef, 0x2c, 0xd4, 0xe7, 0x94, 0x4f, 0x00,
+	0xae, 0xef, 0x1b, 0xb9, 0xaf, 0x19, 0xcc, 0xdc, 0x47, 0xfb, 0xc1, 0x02, 0xad, 0x9e, 0xb5, 0x71,
+	0x26, 0x8c, 0xac, 0xe7, 0xdd, 0x28, 0x23, 0xeb, 0xb9, 0x17, 0x46, 0xb0, 0x1a, 0xcb, 0x99, 0x14,
+	0xd3, 0x2a, 0xbe, 0x6e, 0x83, 0x75, 0xee, 0x5e, 0xa7, 0x2b, 0xe4, 0x39, 0xd4, 0xb5, 0x1d, 0x4a,
+	0x0a, 0xb9, 0x15, 0xf6, 0xb6, 0xdd, 0x5e, 0xa4, 0xce, 0xf9, 0x4e, 0xe1, 0x76, 0x61, 0x81, 0x91,
+	0xae, 0x69, 0x34, 0x67, 0xbf, 0xda, 0x74, 0x19, 0x44, 0xe7, 0x2e, 0xec, 0x15, 0x83, 0x7b, 0xfe,
+	0x8e, 0x33, 0xb8, 0x17, 0xac, 0x25, 0x51, 0x07, 0xed, 0xf5, 0x19, 0x75, 0x98, 0x5d, 0x2a, 0x76,
+	0x7b, 0x91, 0x5a, 0xf1, 0x1d, 0x6c, 0xfd, 0x75, 0xd5, 0xb6, 0xfe, 0xbe, 0x6a, 0x5b, 0xff, 0x5c,
+	0xb5, 0xad, 0x3f, 0xfe, 0x6d, 0xaf, 0x9c, 0x96, 0x7b, 0xdf, 0x4c, 0xf7, 0x5e, 0xae, 0x65, 0x7f,
+	0x6d, 0x3f, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x3a, 0x89, 0x60, 0xcb, 0x19, 0x0b, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -1282,10 +1284,10 @@ var _ grpc.ClientConn
 // is compatible with the grpc package it is being compiled against.
 const _ = grpc.SupportPackageIsVersion4
 
-// AdminClient is the client API for Admin service.
+// AdminServiceClient is the client API for AdminService service.
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
-type AdminClient interface {
+type AdminServiceClient interface {
 	SignUp(ctx context.Context, in *SignUpRequest, opts ...grpc.CallOption) (*SignUpResponse, error)
 	LogIn(ctx context.Context, in *LogInRequest, opts ...grpc.CallOption) (*LogInResponse, error)
 	CreateProject(ctx context.Context, in *CreateProjectRequest, opts ...grpc.CallOption) (*CreateProjectResponse, error)
@@ -1299,115 +1301,115 @@ type AdminClient interface {
 	ListChanges(ctx context.Context, in *ListChangesRequest, opts ...grpc.CallOption) (*ListChangesResponse, error)
 }
 
-type adminClient struct {
+type adminServiceClient struct {
 	cc *grpc.ClientConn
 }
 
-func NewAdminClient(cc *grpc.ClientConn) AdminClient {
-	return &adminClient{cc}
+func NewAdminServiceClient(cc *grpc.ClientConn) AdminServiceClient {
+	return &adminServiceClient{cc}
 }
 
-func (c *adminClient) SignUp(ctx context.Context, in *SignUpRequest, opts ...grpc.CallOption) (*SignUpResponse, error) {
+func (c *adminServiceClient) SignUp(ctx context.Context, in *SignUpRequest, opts ...grpc.CallOption) (*SignUpResponse, error) {
 	out := new(SignUpResponse)
-	err := c.cc.Invoke(ctx, "/api.Admin/SignUp", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/yorkie.v1.AdminService/SignUp", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *adminClient) LogIn(ctx context.Context, in *LogInRequest, opts ...grpc.CallOption) (*LogInResponse, error) {
+func (c *adminServiceClient) LogIn(ctx context.Context, in *LogInRequest, opts ...grpc.CallOption) (*LogInResponse, error) {
 	out := new(LogInResponse)
-	err := c.cc.Invoke(ctx, "/api.Admin/LogIn", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/yorkie.v1.AdminService/LogIn", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *adminClient) CreateProject(ctx context.Context, in *CreateProjectRequest, opts ...grpc.CallOption) (*CreateProjectResponse, error) {
+func (c *adminServiceClient) CreateProject(ctx context.Context, in *CreateProjectRequest, opts ...grpc.CallOption) (*CreateProjectResponse, error) {
 	out := new(CreateProjectResponse)
-	err := c.cc.Invoke(ctx, "/api.Admin/CreateProject", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/yorkie.v1.AdminService/CreateProject", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *adminClient) ListProjects(ctx context.Context, in *ListProjectsRequest, opts ...grpc.CallOption) (*ListProjectsResponse, error) {
+func (c *adminServiceClient) ListProjects(ctx context.Context, in *ListProjectsRequest, opts ...grpc.CallOption) (*ListProjectsResponse, error) {
 	out := new(ListProjectsResponse)
-	err := c.cc.Invoke(ctx, "/api.Admin/ListProjects", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/yorkie.v1.AdminService/ListProjects", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *adminClient) GetProject(ctx context.Context, in *GetProjectRequest, opts ...grpc.CallOption) (*GetProjectResponse, error) {
+func (c *adminServiceClient) GetProject(ctx context.Context, in *GetProjectRequest, opts ...grpc.CallOption) (*GetProjectResponse, error) {
 	out := new(GetProjectResponse)
-	err := c.cc.Invoke(ctx, "/api.Admin/GetProject", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/yorkie.v1.AdminService/GetProject", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *adminClient) UpdateProject(ctx context.Context, in *UpdateProjectRequest, opts ...grpc.CallOption) (*UpdateProjectResponse, error) {
+func (c *adminServiceClient) UpdateProject(ctx context.Context, in *UpdateProjectRequest, opts ...grpc.CallOption) (*UpdateProjectResponse, error) {
 	out := new(UpdateProjectResponse)
-	err := c.cc.Invoke(ctx, "/api.Admin/UpdateProject", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/yorkie.v1.AdminService/UpdateProject", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *adminClient) ListDocuments(ctx context.Context, in *ListDocumentsRequest, opts ...grpc.CallOption) (*ListDocumentsResponse, error) {
+func (c *adminServiceClient) ListDocuments(ctx context.Context, in *ListDocumentsRequest, opts ...grpc.CallOption) (*ListDocumentsResponse, error) {
 	out := new(ListDocumentsResponse)
-	err := c.cc.Invoke(ctx, "/api.Admin/ListDocuments", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/yorkie.v1.AdminService/ListDocuments", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *adminClient) GetDocument(ctx context.Context, in *GetDocumentRequest, opts ...grpc.CallOption) (*GetDocumentResponse, error) {
+func (c *adminServiceClient) GetDocument(ctx context.Context, in *GetDocumentRequest, opts ...grpc.CallOption) (*GetDocumentResponse, error) {
 	out := new(GetDocumentResponse)
-	err := c.cc.Invoke(ctx, "/api.Admin/GetDocument", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/yorkie.v1.AdminService/GetDocument", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *adminClient) GetSnapshotMeta(ctx context.Context, in *GetSnapshotMetaRequest, opts ...grpc.CallOption) (*GetSnapshotMetaResponse, error) {
+func (c *adminServiceClient) GetSnapshotMeta(ctx context.Context, in *GetSnapshotMetaRequest, opts ...grpc.CallOption) (*GetSnapshotMetaResponse, error) {
 	out := new(GetSnapshotMetaResponse)
-	err := c.cc.Invoke(ctx, "/api.Admin/GetSnapshotMeta", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/yorkie.v1.AdminService/GetSnapshotMeta", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *adminClient) SearchDocuments(ctx context.Context, in *SearchDocumentsRequest, opts ...grpc.CallOption) (*SearchDocumentsResponse, error) {
+func (c *adminServiceClient) SearchDocuments(ctx context.Context, in *SearchDocumentsRequest, opts ...grpc.CallOption) (*SearchDocumentsResponse, error) {
 	out := new(SearchDocumentsResponse)
-	err := c.cc.Invoke(ctx, "/api.Admin/SearchDocuments", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/yorkie.v1.AdminService/SearchDocuments", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *adminClient) ListChanges(ctx context.Context, in *ListChangesRequest, opts ...grpc.CallOption) (*ListChangesResponse, error) {
+func (c *adminServiceClient) ListChanges(ctx context.Context, in *ListChangesRequest, opts ...grpc.CallOption) (*ListChangesResponse, error) {
 	out := new(ListChangesResponse)
-	err := c.cc.Invoke(ctx, "/api.Admin/ListChanges", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/yorkie.v1.AdminService/ListChanges", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-// AdminServer is the server API for Admin service.
-type AdminServer interface {
+// AdminServiceServer is the server API for AdminService service.
+type AdminServiceServer interface {
 	SignUp(context.Context, *SignUpRequest) (*SignUpResponse, error)
 	LogIn(context.Context, *LogInRequest) (*LogInResponse, error)
 	CreateProject(context.Context, *CreateProjectRequest) (*CreateProjectResponse, error)
@@ -1421,297 +1423,297 @@ type AdminServer interface {
 	ListChanges(context.Context, *ListChangesRequest) (*ListChangesResponse, error)
 }
 
-// UnimplementedAdminServer can be embedded to have forward compatible implementations.
-type UnimplementedAdminServer struct {
+// UnimplementedAdminServiceServer can be embedded to have forward compatible implementations.
+type UnimplementedAdminServiceServer struct {
 }
 
-func (*UnimplementedAdminServer) SignUp(ctx context.Context, req *SignUpRequest) (*SignUpResponse, error) {
+func (*UnimplementedAdminServiceServer) SignUp(ctx context.Context, req *SignUpRequest) (*SignUpResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method SignUp not implemented")
 }
-func (*UnimplementedAdminServer) LogIn(ctx context.Context, req *LogInRequest) (*LogInResponse, error) {
+func (*UnimplementedAdminServiceServer) LogIn(ctx context.Context, req *LogInRequest) (*LogInResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method LogIn not implemented")
 }
-func (*UnimplementedAdminServer) CreateProject(ctx context.Context, req *CreateProjectRequest) (*CreateProjectResponse, error) {
+func (*UnimplementedAdminServiceServer) CreateProject(ctx context.Context, req *CreateProjectRequest) (*CreateProjectResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method CreateProject not implemented")
 }
-func (*UnimplementedAdminServer) ListProjects(ctx context.Context, req *ListProjectsRequest) (*ListProjectsResponse, error) {
+func (*UnimplementedAdminServiceServer) ListProjects(ctx context.Context, req *ListProjectsRequest) (*ListProjectsResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method ListProjects not implemented")
 }
-func (*UnimplementedAdminServer) GetProject(ctx context.Context, req *GetProjectRequest) (*GetProjectResponse, error) {
+func (*UnimplementedAdminServiceServer) GetProject(ctx context.Context, req *GetProjectRequest) (*GetProjectResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetProject not implemented")
 }
-func (*UnimplementedAdminServer) UpdateProject(ctx context.Context, req *UpdateProjectRequest) (*UpdateProjectResponse, error) {
+func (*UnimplementedAdminServiceServer) UpdateProject(ctx context.Context, req *UpdateProjectRequest) (*UpdateProjectResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method UpdateProject not implemented")
 }
-func (*UnimplementedAdminServer) ListDocuments(ctx context.Context, req *ListDocumentsRequest) (*ListDocumentsResponse, error) {
+func (*UnimplementedAdminServiceServer) ListDocuments(ctx context.Context, req *ListDocumentsRequest) (*ListDocumentsResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method ListDocuments not implemented")
 }
-func (*UnimplementedAdminServer) GetDocument(ctx context.Context, req *GetDocumentRequest) (*GetDocumentResponse, error) {
+func (*UnimplementedAdminServiceServer) GetDocument(ctx context.Context, req *GetDocumentRequest) (*GetDocumentResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetDocument not implemented")
 }
-func (*UnimplementedAdminServer) GetSnapshotMeta(ctx context.Context, req *GetSnapshotMetaRequest) (*GetSnapshotMetaResponse, error) {
+func (*UnimplementedAdminServiceServer) GetSnapshotMeta(ctx context.Context, req *GetSnapshotMetaRequest) (*GetSnapshotMetaResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetSnapshotMeta not implemented")
 }
-func (*UnimplementedAdminServer) SearchDocuments(ctx context.Context, req *SearchDocumentsRequest) (*SearchDocumentsResponse, error) {
+func (*UnimplementedAdminServiceServer) SearchDocuments(ctx context.Context, req *SearchDocumentsRequest) (*SearchDocumentsResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method SearchDocuments not implemented")
 }
-func (*UnimplementedAdminServer) ListChanges(ctx context.Context, req *ListChangesRequest) (*ListChangesResponse, error) {
+func (*UnimplementedAdminServiceServer) ListChanges(ctx context.Context, req *ListChangesRequest) (*ListChangesResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method ListChanges not implemented")
 }
 
-func RegisterAdminServer(s *grpc.Server, srv AdminServer) {
-	s.RegisterService(&_Admin_serviceDesc, srv)
+func RegisterAdminServiceServer(s *grpc.Server, srv AdminServiceServer) {
+	s.RegisterService(&_AdminService_serviceDesc, srv)
 }
 
-func _Admin_SignUp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _AdminService_SignUp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(SignUpRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(AdminServer).SignUp(ctx, in)
+		return srv.(AdminServiceServer).SignUp(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/api.Admin/SignUp",
+		FullMethod: "/yorkie.v1.AdminService/SignUp",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdminServer).SignUp(ctx, req.(*SignUpRequest))
+		return srv.(AdminServiceServer).SignUp(ctx, req.(*SignUpRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Admin_LogIn_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _AdminService_LogIn_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(LogInRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(AdminServer).LogIn(ctx, in)
+		return srv.(AdminServiceServer).LogIn(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/api.Admin/LogIn",
+		FullMethod: "/yorkie.v1.AdminService/LogIn",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdminServer).LogIn(ctx, req.(*LogInRequest))
+		return srv.(AdminServiceServer).LogIn(ctx, req.(*LogInRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Admin_CreateProject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _AdminService_CreateProject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(CreateProjectRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(AdminServer).CreateProject(ctx, in)
+		return srv.(AdminServiceServer).CreateProject(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/api.Admin/CreateProject",
+		FullMethod: "/yorkie.v1.AdminService/CreateProject",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdminServer).CreateProject(ctx, req.(*CreateProjectRequest))
+		return srv.(AdminServiceServer).CreateProject(ctx, req.(*CreateProjectRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Admin_ListProjects_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _AdminService_ListProjects_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(ListProjectsRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(AdminServer).ListProjects(ctx, in)
+		return srv.(AdminServiceServer).ListProjects(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/api.Admin/ListProjects",
+		FullMethod: "/yorkie.v1.AdminService/ListProjects",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdminServer).ListProjects(ctx, req.(*ListProjectsRequest))
+		return srv.(AdminServiceServer).ListProjects(ctx, req.(*ListProjectsRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Admin_GetProject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _AdminService_GetProject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(GetProjectRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(AdminServer).GetProject(ctx, in)
+		return srv.(AdminServiceServer).GetProject(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/api.Admin/GetProject",
+		FullMethod: "/yorkie.v1.AdminService/GetProject",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdminServer).GetProject(ctx, req.(*GetProjectRequest))
+		return srv.(AdminServiceServer).GetProject(ctx, req.(*GetProjectRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Admin_UpdateProject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _AdminService_UpdateProject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(UpdateProjectRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(AdminServer).UpdateProject(ctx, in)
+		return srv.(AdminServiceServer).UpdateProject(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/api.Admin/UpdateProject",
+		FullMethod: "/yorkie.v1.AdminService/UpdateProject",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdminServer).UpdateProject(ctx, req.(*UpdateProjectRequest))
+		return srv.(AdminServiceServer).UpdateProject(ctx, req.(*UpdateProjectRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Admin_ListDocuments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _AdminService_ListDocuments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(ListDocumentsRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(AdminServer).ListDocuments(ctx, in)
+		return srv.(AdminServiceServer).ListDocuments(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/api.Admin/ListDocuments",
+		FullMethod: "/yorkie.v1.AdminService/ListDocuments",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdminServer).ListDocuments(ctx, req.(*ListDocumentsRequest))
+		return srv.(AdminServiceServer).ListDocuments(ctx, req.(*ListDocumentsRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Admin_GetDocument_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _AdminService_GetDocument_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(GetDocumentRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(AdminServer).GetDocument(ctx, in)
+		return srv.(AdminServiceServer).GetDocument(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/api.Admin/GetDocument",
+		FullMethod: "/yorkie.v1.AdminService/GetDocument",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdminServer).GetDocument(ctx, req.(*GetDocumentRequest))
+		return srv.(AdminServiceServer).GetDocument(ctx, req.(*GetDocumentRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Admin_GetSnapshotMeta_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _AdminService_GetSnapshotMeta_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(GetSnapshotMetaRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(AdminServer).GetSnapshotMeta(ctx, in)
+		return srv.(AdminServiceServer).GetSnapshotMeta(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/api.Admin/GetSnapshotMeta",
+		FullMethod: "/yorkie.v1.AdminService/GetSnapshotMeta",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdminServer).GetSnapshotMeta(ctx, req.(*GetSnapshotMetaRequest))
+		return srv.(AdminServiceServer).GetSnapshotMeta(ctx, req.(*GetSnapshotMetaRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Admin_SearchDocuments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _AdminService_SearchDocuments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(SearchDocumentsRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(AdminServer).SearchDocuments(ctx, in)
+		return srv.(AdminServiceServer).SearchDocuments(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/api.Admin/SearchDocuments",
+		FullMethod: "/yorkie.v1.AdminService/SearchDocuments",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdminServer).SearchDocuments(ctx, req.(*SearchDocumentsRequest))
+		return srv.(AdminServiceServer).SearchDocuments(ctx, req.(*SearchDocumentsRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Admin_ListChanges_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _AdminService_ListChanges_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(ListChangesRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(AdminServer).ListChanges(ctx, in)
+		return srv.(AdminServiceServer).ListChanges(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/api.Admin/ListChanges",
+		FullMethod: "/yorkie.v1.AdminService/ListChanges",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdminServer).ListChanges(ctx, req.(*ListChangesRequest))
+		return srv.(AdminServiceServer).ListChanges(ctx, req.(*ListChangesRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-var _Admin_serviceDesc = grpc.ServiceDesc{
-	ServiceName: "api.Admin",
-	HandlerType: (*AdminServer)(nil),
+var _AdminService_serviceDesc = grpc.ServiceDesc{
+	ServiceName: "yorkie.v1.AdminService",
+	HandlerType: (*AdminServiceServer)(nil),
 	Methods: []grpc.MethodDesc{
 		{
 			MethodName: "SignUp",
-			Handler:    _Admin_SignUp_Handler,
+			Handler:    _AdminService_SignUp_Handler,
 		},
 		{
 			MethodName: "LogIn",
-			Handler:    _Admin_LogIn_Handler,
+			Handler:    _AdminService_LogIn_Handler,
 		},
 		{
 			MethodName: "CreateProject",
-			Handler:    _Admin_CreateProject_Handler,
+			Handler:    _AdminService_CreateProject_Handler,
 		},
 		{
 			MethodName: "ListProjects",
-			Handler:    _Admin_ListProjects_Handler,
+			Handler:    _AdminService_ListProjects_Handler,
 		},
 		{
 			MethodName: "GetProject",
-			Handler:    _Admin_GetProject_Handler,
+			Handler:    _AdminService_GetProject_Handler,
 		},
 		{
 			MethodName: "UpdateProject",
-			Handler:    _Admin_UpdateProject_Handler,
+			Handler:    _AdminService_UpdateProject_Handler,
 		},
 		{
 			MethodName: "ListDocuments",
-			Handler:    _Admin_ListDocuments_Handler,
+			Handler:    _AdminService_ListDocuments_Handler,
 		},
 		{
 			MethodName: "GetDocument",
-			Handler:    _Admin_GetDocument_Handler,
+			Handler:    _AdminService_GetDocument_Handler,
 		},
 		{
 			MethodName: "GetSnapshotMeta",
-			Handler:    _Admin_GetSnapshotMeta_Handler,
+			Handler:    _AdminService_GetSnapshotMeta_Handler,
 		},
 		{
 			MethodName: "SearchDocuments",
-			Handler:    _Admin_SearchDocuments_Handler,
+			Handler:    _AdminService_SearchDocuments_Handler,
 		},
 		{
 			MethodName: "ListChanges",
-			Handler:    _Admin_ListChanges_Handler,
+			Handler:    _AdminService_ListChanges_Handler,
 		},
 	},
 	Streams:  []grpc.StreamDesc{},
-	Metadata: "admin.proto",
+	Metadata: "yorkie/v1/admin.proto",
 }
 
 func (m *SignUpRequest) Marshal() (dAtA []byte, err error) {
diff --git a/api/admin.proto b/api/yorkie/v1/admin.proto
similarity index 96%
rename from api/admin.proto
rename to api/yorkie/v1/admin.proto
index b531bdb3..c9407b3b 100644
--- a/api/admin.proto
+++ b/api/yorkie/v1/admin.proto
@@ -15,12 +15,14 @@
  */
 syntax = "proto3";
 
-package api;
+package yorkie.v1;
 
-import "resources.proto";
+import "yorkie/v1/resources.proto";
+
+option go_package = ".;v1";
 
 // Admin is a service that provides a API for Admin.
-service Admin {
+service AdminService {
   rpc SignUp(SignUpRequest) returns (SignUpResponse) {}
   rpc LogIn(LogInRequest) returns (LogInResponse) {}
 
diff --git a/api/cluster.pb.go b/api/yorkie/v1/cluster.pb.go
similarity index 79%
rename from api/cluster.pb.go
rename to api/yorkie/v1/cluster.pb.go
index 36c303a5..8778dc78 100644
--- a/api/cluster.pb.go
+++ b/api/yorkie/v1/cluster.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-gogo. DO NOT EDIT.
-// source: cluster.proto
+// source: yorkie/v1/cluster.proto
 
-package api
+package v1
 
 import (
 	context "context"
@@ -38,7 +38,7 @@ func (m *BroadcastEventRequest) Reset()         { *m = BroadcastEventRequest{} }
 func (m *BroadcastEventRequest) String() string { return proto.CompactTextString(m) }
 func (*BroadcastEventRequest) ProtoMessage()    {}
 func (*BroadcastEventRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_3cfb3b8ec240c376, []int{0}
+	return fileDescriptor_af343d6b11b4d4ad, []int{0}
 }
 func (m *BroadcastEventRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -91,7 +91,7 @@ func (m *BroadcastEventResponse) Reset()         { *m = BroadcastEventResponse{}
 func (m *BroadcastEventResponse) String() string { return proto.CompactTextString(m) }
 func (*BroadcastEventResponse) ProtoMessage()    {}
 func (*BroadcastEventResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_3cfb3b8ec240c376, []int{1}
+	return fileDescriptor_af343d6b11b4d4ad, []int{1}
 }
 func (m *BroadcastEventResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -121,27 +121,29 @@ func (m *BroadcastEventResponse) XXX_DiscardUnknown() {
 var xxx_messageInfo_BroadcastEventResponse proto.InternalMessageInfo
 
 func init() {
-	proto.RegisterType((*BroadcastEventRequest)(nil), "api.BroadcastEventRequest")
-	proto.RegisterType((*BroadcastEventResponse)(nil), "api.BroadcastEventResponse")
-}
-
-func init() { proto.RegisterFile("cluster.proto", fileDescriptor_3cfb3b8ec240c376) }
-
-var fileDescriptor_3cfb3b8ec240c376 = []byte{
-	// 202 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4d, 0xce, 0x29, 0x2d,
-	0x2e, 0x49, 0x2d, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x4e, 0x2c, 0xc8, 0x94, 0xe2,
-	0x2f, 0x4a, 0x2d, 0xce, 0x2f, 0x2d, 0x4a, 0x4e, 0x2d, 0x86, 0x88, 0x2a, 0xc5, 0x73, 0x89, 0x3a,
-	0x15, 0xe5, 0x27, 0xa6, 0x24, 0x27, 0x16, 0x97, 0xb8, 0x96, 0xa5, 0xe6, 0x95, 0x04, 0xa5, 0x16,
-	0x96, 0xa6, 0x16, 0x97, 0x08, 0x29, 0x72, 0xf1, 0x14, 0x94, 0x26, 0xe5, 0x64, 0x16, 0x67, 0xa4,
-	0x16, 0xc5, 0x67, 0xa6, 0x48, 0x30, 0x2a, 0x30, 0x6a, 0xf0, 0x04, 0x71, 0xc3, 0xc5, 0x3c, 0x53,
-	0x84, 0x94, 0xb9, 0x58, 0x53, 0x41, 0x5a, 0x24, 0x98, 0x14, 0x18, 0x35, 0xb8, 0x8d, 0x78, 0xf5,
-	0x12, 0x0b, 0x32, 0xf5, 0x5c, 0xf2, 0x93, 0x21, 0xe6, 0x40, 0xe4, 0x94, 0x24, 0xb8, 0xc4, 0xd0,
-	0x2d, 0x28, 0x2e, 0xc8, 0xcf, 0x2b, 0x4e, 0x35, 0x0a, 0xe3, 0x62, 0x77, 0x86, 0xb8, 0x50, 0xc8,
-	0x9b, 0x8b, 0x0f, 0x55, 0x91, 0x90, 0x14, 0xd8, 0x30, 0xac, 0x4e, 0x93, 0x92, 0xc6, 0x2a, 0x07,
-	0x31, 0x55, 0x89, 0xc1, 0x49, 0xe0, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f, 0x3c,
-	0x92, 0x63, 0x9c, 0xf1, 0x58, 0x8e, 0x21, 0x89, 0x0d, 0xec, 0x57, 0x63, 0x40, 0x00, 0x00, 0x00,
-	0xff, 0xff, 0xf9, 0x41, 0x43, 0x39, 0x12, 0x01, 0x00, 0x00,
+	proto.RegisterType((*BroadcastEventRequest)(nil), "yorkie.v1.BroadcastEventRequest")
+	proto.RegisterType((*BroadcastEventResponse)(nil), "yorkie.v1.BroadcastEventResponse")
+}
+
+func init() { proto.RegisterFile("yorkie/v1/cluster.proto", fileDescriptor_af343d6b11b4d4ad) }
+
+var fileDescriptor_af343d6b11b4d4ad = []byte{
+	// 228 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0xaf, 0xcc, 0x2f, 0xca,
+	0xce, 0x4c, 0xd5, 0x2f, 0x33, 0xd4, 0x4f, 0xce, 0x29, 0x2d, 0x2e, 0x49, 0x2d, 0xd2, 0x2b, 0x28,
+	0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x84, 0x48, 0xe8, 0x95, 0x19, 0x4a, 0x49, 0x22, 0xd4, 0x14, 0xa5,
+	0x16, 0xe7, 0x97, 0x16, 0x25, 0xa7, 0x16, 0x43, 0x54, 0x29, 0xa5, 0x72, 0x89, 0x3a, 0x15, 0xe5,
+	0x27, 0xa6, 0x24, 0x27, 0x16, 0x97, 0xb8, 0x96, 0xa5, 0xe6, 0x95, 0x04, 0xa5, 0x16, 0x96, 0xa6,
+	0x16, 0x97, 0x08, 0x29, 0x72, 0xf1, 0x14, 0x94, 0x26, 0xe5, 0x64, 0x16, 0x67, 0xa4, 0x16, 0xc5,
+	0x67, 0xa6, 0x48, 0x30, 0x2a, 0x30, 0x6a, 0xf0, 0x04, 0x71, 0xc3, 0xc5, 0x3c, 0x53, 0x84, 0x34,
+	0xb9, 0x58, 0x53, 0x41, 0x5a, 0x24, 0x98, 0x14, 0x18, 0x35, 0xb8, 0x8d, 0x84, 0xf5, 0xe0, 0x36,
+	0xea, 0xb9, 0xe4, 0x27, 0x43, 0x4c, 0x83, 0xa8, 0x50, 0x92, 0xe0, 0x12, 0x43, 0xb7, 0xa6, 0xb8,
+	0x20, 0x3f, 0xaf, 0x38, 0xd5, 0x28, 0x93, 0x8b, 0xcf, 0x19, 0xe2, 0xee, 0xe0, 0xd4, 0xa2, 0xb2,
+	0xcc, 0xe4, 0x54, 0xa1, 0x70, 0x2e, 0x3e, 0x54, 0xb5, 0x42, 0x0a, 0x48, 0x26, 0x63, 0x75, 0xad,
+	0x94, 0x22, 0x1e, 0x15, 0x10, 0x8b, 0x94, 0x18, 0x9c, 0xc4, 0x4e, 0x3c, 0x92, 0x63, 0xbc, 0xf0,
+	0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, 0x19, 0x8f, 0xe5, 0x18, 0xa2, 0x58, 0xf4, 0xac, 0xcb,
+	0x0c, 0x93, 0xd8, 0xc0, 0x41, 0x61, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0x3a, 0xf1, 0xc1, 0xb1,
+	0x4b, 0x01, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -152,76 +154,76 @@ var _ grpc.ClientConn
 // is compatible with the grpc package it is being compiled against.
 const _ = grpc.SupportPackageIsVersion4
 
-// ClusterClient is the client API for Cluster service.
+// ClusterServiceClient is the client API for ClusterService service.
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
-type ClusterClient interface {
+type ClusterServiceClient interface {
 	BroadcastEvent(ctx context.Context, in *BroadcastEventRequest, opts ...grpc.CallOption) (*BroadcastEventResponse, error)
 }
 
-type clusterClient struct {
+type clusterServiceClient struct {
 	cc *grpc.ClientConn
 }
 
-func NewClusterClient(cc *grpc.ClientConn) ClusterClient {
-	return &clusterClient{cc}
+func NewClusterServiceClient(cc *grpc.ClientConn) ClusterServiceClient {
+	return &clusterServiceClient{cc}
 }
 
-func (c *clusterClient) BroadcastEvent(ctx context.Context, in *BroadcastEventRequest, opts ...grpc.CallOption) (*BroadcastEventResponse, error) {
+func (c *clusterServiceClient) BroadcastEvent(ctx context.Context, in *BroadcastEventRequest, opts ...grpc.CallOption) (*BroadcastEventResponse, error) {
 	out := new(BroadcastEventResponse)
-	err := c.cc.Invoke(ctx, "/api.Cluster/BroadcastEvent", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/yorkie.v1.ClusterService/BroadcastEvent", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-// ClusterServer is the server API for Cluster service.
-type ClusterServer interface {
+// ClusterServiceServer is the server API for ClusterService service.
+type ClusterServiceServer interface {
 	BroadcastEvent(context.Context, *BroadcastEventRequest) (*BroadcastEventResponse, error)
 }
 
-// UnimplementedClusterServer can be embedded to have forward compatible implementations.
-type UnimplementedClusterServer struct {
+// UnimplementedClusterServiceServer can be embedded to have forward compatible implementations.
+type UnimplementedClusterServiceServer struct {
 }
 
-func (*UnimplementedClusterServer) BroadcastEvent(ctx context.Context, req *BroadcastEventRequest) (*BroadcastEventResponse, error) {
+func (*UnimplementedClusterServiceServer) BroadcastEvent(ctx context.Context, req *BroadcastEventRequest) (*BroadcastEventResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method BroadcastEvent not implemented")
 }
 
-func RegisterClusterServer(s *grpc.Server, srv ClusterServer) {
-	s.RegisterService(&_Cluster_serviceDesc, srv)
+func RegisterClusterServiceServer(s *grpc.Server, srv ClusterServiceServer) {
+	s.RegisterService(&_ClusterService_serviceDesc, srv)
 }
 
-func _Cluster_BroadcastEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _ClusterService_BroadcastEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(BroadcastEventRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(ClusterServer).BroadcastEvent(ctx, in)
+		return srv.(ClusterServiceServer).BroadcastEvent(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/api.Cluster/BroadcastEvent",
+		FullMethod: "/yorkie.v1.ClusterService/BroadcastEvent",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(ClusterServer).BroadcastEvent(ctx, req.(*BroadcastEventRequest))
+		return srv.(ClusterServiceServer).BroadcastEvent(ctx, req.(*BroadcastEventRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-var _Cluster_serviceDesc = grpc.ServiceDesc{
-	ServiceName: "api.Cluster",
-	HandlerType: (*ClusterServer)(nil),
+var _ClusterService_serviceDesc = grpc.ServiceDesc{
+	ServiceName: "yorkie.v1.ClusterService",
+	HandlerType: (*ClusterServiceServer)(nil),
 	Methods: []grpc.MethodDesc{
 		{
 			MethodName: "BroadcastEvent",
-			Handler:    _Cluster_BroadcastEvent_Handler,
+			Handler:    _ClusterService_BroadcastEvent_Handler,
 		},
 	},
 	Streams:  []grpc.StreamDesc{},
-	Metadata: "cluster.proto",
+	Metadata: "yorkie/v1/cluster.proto",
 }
 
 func (m *BroadcastEventRequest) Marshal() (dAtA []byte, err error) {
diff --git a/api/cluster.proto b/api/yorkie/v1/cluster.proto
similarity index 89%
rename from api/cluster.proto
rename to api/yorkie/v1/cluster.proto
index 52d8eaff..280f39f6 100644
--- a/api/cluster.proto
+++ b/api/yorkie/v1/cluster.proto
@@ -15,12 +15,14 @@
  */
 syntax = "proto3";
 
-package api;
+package yorkie.v1;
 
-import "resources.proto";
+import "yorkie/v1/resources.proto";
+
+option go_package = ".;v1";
 
 // Cluster is a service that provides a API used by Yorkie Cluster.
-service Cluster {
+service ClusterService {
   rpc BroadcastEvent (BroadcastEventRequest) returns (BroadcastEventResponse) {}
 }
 
diff --git a/api/resources.pb.go b/api/yorkie/v1/resources.pb.go
similarity index 93%
rename from api/resources.pb.go
rename to api/yorkie/v1/resources.pb.go
index b2016641..dca865be 100644
--- a/api/resources.pb.go
+++ b/api/yorkie/v1/resources.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-gogo. DO NOT EDIT.
-// source: resources.proto
+// source: yorkie/v1/resources.proto
 
-package api
+package v1
 
 import (
 	fmt "fmt"
@@ -26,57 +26,57 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
 type ValueType int32
 
 const (
-	ValueType_NULL        ValueType = 0
-	ValueType_BOOLEAN     ValueType = 1
-	ValueType_INTEGER     ValueType = 2
-	ValueType_LONG        ValueType = 3
-	ValueType_DOUBLE      ValueType = 4
-	ValueType_STRING      ValueType = 5
-	ValueType_BYTES       ValueType = 6
-	ValueType_DATE        ValueType = 7
-	ValueType_JSON_OBJECT ValueType = 8
-	ValueType_JSON_ARRAY  ValueType = 9
-	ValueType_TEXT        ValueType = 10
-	ValueType_RICH_TEXT   ValueType = 11
-	ValueType_INTEGER_CNT ValueType = 12
-	ValueType_LONG_CNT    ValueType = 13
-	ValueType_DOUBLE_CNT  ValueType = 14
+	ValueType_VALUE_TYPE_NULL        ValueType = 0
+	ValueType_VALUE_TYPE_BOOLEAN     ValueType = 1
+	ValueType_VALUE_TYPE_INTEGER     ValueType = 2
+	ValueType_VALUE_TYPE_LONG        ValueType = 3
+	ValueType_VALUE_TYPE_DOUBLE      ValueType = 4
+	ValueType_VALUE_TYPE_STRING      ValueType = 5
+	ValueType_VALUE_TYPE_BYTES       ValueType = 6
+	ValueType_VALUE_TYPE_DATE        ValueType = 7
+	ValueType_VALUE_TYPE_JSON_OBJECT ValueType = 8
+	ValueType_VALUE_TYPE_JSON_ARRAY  ValueType = 9
+	ValueType_VALUE_TYPE_TEXT        ValueType = 10
+	ValueType_VALUE_TYPE_RICH_TEXT   ValueType = 11
+	ValueType_VALUE_TYPE_INTEGER_CNT ValueType = 12
+	ValueType_VALUE_TYPE_LONG_CNT    ValueType = 13
+	ValueType_VALUE_TYPE_DOUBLE_CNT  ValueType = 14
 )
 
 var ValueType_name = map[int32]string{
-	0:  "NULL",
-	1:  "BOOLEAN",
-	2:  "INTEGER",
-	3:  "LONG",
-	4:  "DOUBLE",
-	5:  "STRING",
-	6:  "BYTES",
-	7:  "DATE",
-	8:  "JSON_OBJECT",
-	9:  "JSON_ARRAY",
-	10: "TEXT",
-	11: "RICH_TEXT",
-	12: "INTEGER_CNT",
-	13: "LONG_CNT",
-	14: "DOUBLE_CNT",
+	0:  "VALUE_TYPE_NULL",
+	1:  "VALUE_TYPE_BOOLEAN",
+	2:  "VALUE_TYPE_INTEGER",
+	3:  "VALUE_TYPE_LONG",
+	4:  "VALUE_TYPE_DOUBLE",
+	5:  "VALUE_TYPE_STRING",
+	6:  "VALUE_TYPE_BYTES",
+	7:  "VALUE_TYPE_DATE",
+	8:  "VALUE_TYPE_JSON_OBJECT",
+	9:  "VALUE_TYPE_JSON_ARRAY",
+	10: "VALUE_TYPE_TEXT",
+	11: "VALUE_TYPE_RICH_TEXT",
+	12: "VALUE_TYPE_INTEGER_CNT",
+	13: "VALUE_TYPE_LONG_CNT",
+	14: "VALUE_TYPE_DOUBLE_CNT",
 }
 
 var ValueType_value = map[string]int32{
-	"NULL":        0,
-	"BOOLEAN":     1,
-	"INTEGER":     2,
-	"LONG":        3,
-	"DOUBLE":      4,
-	"STRING":      5,
-	"BYTES":       6,
-	"DATE":        7,
-	"JSON_OBJECT": 8,
-	"JSON_ARRAY":  9,
-	"TEXT":        10,
-	"RICH_TEXT":   11,
-	"INTEGER_CNT": 12,
-	"LONG_CNT":    13,
-	"DOUBLE_CNT":  14,
+	"VALUE_TYPE_NULL":        0,
+	"VALUE_TYPE_BOOLEAN":     1,
+	"VALUE_TYPE_INTEGER":     2,
+	"VALUE_TYPE_LONG":        3,
+	"VALUE_TYPE_DOUBLE":      4,
+	"VALUE_TYPE_STRING":      5,
+	"VALUE_TYPE_BYTES":       6,
+	"VALUE_TYPE_DATE":        7,
+	"VALUE_TYPE_JSON_OBJECT": 8,
+	"VALUE_TYPE_JSON_ARRAY":  9,
+	"VALUE_TYPE_TEXT":        10,
+	"VALUE_TYPE_RICH_TEXT":   11,
+	"VALUE_TYPE_INTEGER_CNT": 12,
+	"VALUE_TYPE_LONG_CNT":    13,
+	"VALUE_TYPE_DOUBLE_CNT":  14,
 }
 
 func (x ValueType) String() string {
@@ -84,30 +84,30 @@ func (x ValueType) String() string {
 }
 
 func (ValueType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{0}
+	return fileDescriptor_36361b2f5d0f0896, []int{0}
 }
 
 type DocEventType int32
 
 const (
-	DocEventType_DOCUMENTS_CHANGED   DocEventType = 0
-	DocEventType_DOCUMENTS_WATCHED   DocEventType = 1
-	DocEventType_DOCUMENTS_UNWATCHED DocEventType = 2
-	DocEventType_PRESENCE_CHANGED    DocEventType = 3
+	DocEventType_DOC_EVENT_TYPE_DOCUMENTS_CHANGED   DocEventType = 0
+	DocEventType_DOC_EVENT_TYPE_DOCUMENTS_WATCHED   DocEventType = 1
+	DocEventType_DOC_EVENT_TYPE_DOCUMENTS_UNWATCHED DocEventType = 2
+	DocEventType_DOC_EVENT_TYPE_PRESENCE_CHANGED    DocEventType = 3
 )
 
 var DocEventType_name = map[int32]string{
-	0: "DOCUMENTS_CHANGED",
-	1: "DOCUMENTS_WATCHED",
-	2: "DOCUMENTS_UNWATCHED",
-	3: "PRESENCE_CHANGED",
+	0: "DOC_EVENT_TYPE_DOCUMENTS_CHANGED",
+	1: "DOC_EVENT_TYPE_DOCUMENTS_WATCHED",
+	2: "DOC_EVENT_TYPE_DOCUMENTS_UNWATCHED",
+	3: "DOC_EVENT_TYPE_PRESENCE_CHANGED",
 }
 
 var DocEventType_value = map[string]int32{
-	"DOCUMENTS_CHANGED":   0,
-	"DOCUMENTS_WATCHED":   1,
-	"DOCUMENTS_UNWATCHED": 2,
-	"PRESENCE_CHANGED":    3,
+	"DOC_EVENT_TYPE_DOCUMENTS_CHANGED":   0,
+	"DOC_EVENT_TYPE_DOCUMENTS_WATCHED":   1,
+	"DOC_EVENT_TYPE_DOCUMENTS_UNWATCHED": 2,
+	"DOC_EVENT_TYPE_PRESENCE_CHANGED":    3,
 }
 
 func (x DocEventType) String() string {
@@ -115,7 +115,7 @@ func (x DocEventType) String() string {
 }
 
 func (DocEventType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{1}
+	return fileDescriptor_36361b2f5d0f0896, []int{1}
 }
 
 type ChangePack struct {
@@ -133,7 +133,7 @@ func (m *ChangePack) Reset()         { *m = ChangePack{} }
 func (m *ChangePack) String() string { return proto.CompactTextString(m) }
 func (*ChangePack) ProtoMessage()    {}
 func (*ChangePack) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{0}
+	return fileDescriptor_36361b2f5d0f0896, []int{0}
 }
 func (m *ChangePack) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -210,7 +210,7 @@ func (m *Change) Reset()         { *m = Change{} }
 func (m *Change) String() string { return proto.CompactTextString(m) }
 func (*Change) ProtoMessage()    {}
 func (*Change) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{1}
+	return fileDescriptor_36361b2f5d0f0896, []int{1}
 }
 func (m *Change) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -274,7 +274,7 @@ func (m *ChangeID) Reset()         { *m = ChangeID{} }
 func (m *ChangeID) String() string { return proto.CompactTextString(m) }
 func (*ChangeID) ProtoMessage()    {}
 func (*ChangeID) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{2}
+	return fileDescriptor_36361b2f5d0f0896, []int{2}
 }
 func (m *ChangeID) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -352,7 +352,7 @@ func (m *Operation) Reset()         { *m = Operation{} }
 func (m *Operation) String() string { return proto.CompactTextString(m) }
 func (*Operation) ProtoMessage()    {}
 func (*Operation) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{3}
+	return fileDescriptor_36361b2f5d0f0896, []int{3}
 }
 func (m *Operation) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -524,7 +524,7 @@ func (m *Operation_Set) Reset()         { *m = Operation_Set{} }
 func (m *Operation_Set) String() string { return proto.CompactTextString(m) }
 func (*Operation_Set) ProtoMessage()    {}
 func (*Operation_Set) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{3, 0}
+	return fileDescriptor_36361b2f5d0f0896, []int{3, 0}
 }
 func (m *Operation_Set) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -595,7 +595,7 @@ func (m *Operation_Add) Reset()         { *m = Operation_Add{} }
 func (m *Operation_Add) String() string { return proto.CompactTextString(m) }
 func (*Operation_Add) ProtoMessage()    {}
 func (*Operation_Add) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{3, 1}
+	return fileDescriptor_36361b2f5d0f0896, []int{3, 1}
 }
 func (m *Operation_Add) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -666,7 +666,7 @@ func (m *Operation_Move) Reset()         { *m = Operation_Move{} }
 func (m *Operation_Move) String() string { return proto.CompactTextString(m) }
 func (*Operation_Move) ProtoMessage()    {}
 func (*Operation_Move) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{3, 2}
+	return fileDescriptor_36361b2f5d0f0896, []int{3, 2}
 }
 func (m *Operation_Move) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -736,7 +736,7 @@ func (m *Operation_Remove) Reset()         { *m = Operation_Remove{} }
 func (m *Operation_Remove) String() string { return proto.CompactTextString(m) }
 func (*Operation_Remove) ProtoMessage()    {}
 func (*Operation_Remove) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{3, 3}
+	return fileDescriptor_36361b2f5d0f0896, []int{3, 3}
 }
 func (m *Operation_Remove) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -802,7 +802,7 @@ func (m *Operation_Edit) Reset()         { *m = Operation_Edit{} }
 func (m *Operation_Edit) String() string { return proto.CompactTextString(m) }
 func (*Operation_Edit) ProtoMessage()    {}
 func (*Operation_Edit) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{3, 4}
+	return fileDescriptor_36361b2f5d0f0896, []int{3, 4}
 }
 func (m *Operation_Edit) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -887,7 +887,7 @@ func (m *Operation_Select) Reset()         { *m = Operation_Select{} }
 func (m *Operation_Select) String() string { return proto.CompactTextString(m) }
 func (*Operation_Select) ProtoMessage()    {}
 func (*Operation_Select) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{3, 5}
+	return fileDescriptor_36361b2f5d0f0896, []int{3, 5}
 }
 func (m *Operation_Select) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -961,7 +961,7 @@ func (m *Operation_RichEdit) Reset()         { *m = Operation_RichEdit{} }
 func (m *Operation_RichEdit) String() string { return proto.CompactTextString(m) }
 func (*Operation_RichEdit) ProtoMessage()    {}
 func (*Operation_RichEdit) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{3, 6}
+	return fileDescriptor_36361b2f5d0f0896, []int{3, 6}
 }
 func (m *Operation_RichEdit) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -1054,7 +1054,7 @@ func (m *Operation_Style) Reset()         { *m = Operation_Style{} }
 func (m *Operation_Style) String() string { return proto.CompactTextString(m) }
 func (*Operation_Style) ProtoMessage()    {}
 func (*Operation_Style) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{3, 7}
+	return fileDescriptor_36361b2f5d0f0896, []int{3, 7}
 }
 func (m *Operation_Style) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -1131,7 +1131,7 @@ func (m *Operation_Increase) Reset()         { *m = Operation_Increase{} }
 func (m *Operation_Increase) String() string { return proto.CompactTextString(m) }
 func (*Operation_Increase) ProtoMessage()    {}
 func (*Operation_Increase) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{3, 8}
+	return fileDescriptor_36361b2f5d0f0896, []int{3, 8}
 }
 func (m *Operation_Increase) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -1185,7 +1185,7 @@ type JSONElementSimple struct {
 	CreatedAt            *TimeTicket `protobuf:"bytes,1,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
 	MovedAt              *TimeTicket `protobuf:"bytes,2,opt,name=moved_at,json=movedAt,proto3" json:"moved_at,omitempty"`
 	RemovedAt            *TimeTicket `protobuf:"bytes,3,opt,name=removed_at,json=removedAt,proto3" json:"removed_at,omitempty"`
-	Type                 ValueType   `protobuf:"varint,4,opt,name=type,proto3,enum=api.ValueType" json:"type,omitempty"`
+	Type                 ValueType   `protobuf:"varint,4,opt,name=type,proto3,enum=yorkie.v1.ValueType" json:"type,omitempty"`
 	Value                []byte      `protobuf:"bytes,5,opt,name=value,proto3" json:"value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
@@ -1196,7 +1196,7 @@ func (m *JSONElementSimple) Reset()         { *m = JSONElementSimple{} }
 func (m *JSONElementSimple) String() string { return proto.CompactTextString(m) }
 func (*JSONElementSimple) ProtoMessage()    {}
 func (*JSONElementSimple) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{4}
+	return fileDescriptor_36361b2f5d0f0896, []int{4}
 }
 func (m *JSONElementSimple) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -1250,7 +1250,7 @@ func (m *JSONElementSimple) GetType() ValueType {
 	if m != nil {
 		return m.Type
 	}
-	return ValueType_NULL
+	return ValueType_VALUE_TYPE_NULL
 }
 
 func (m *JSONElementSimple) GetValue() []byte {
@@ -1268,7 +1268,7 @@ type JSONElement struct {
 	//	*JSONElement_Text_
 	//	*JSONElement_RichText_
 	//	*JSONElement_Counter_
-	Body                 isJSONElement_Body `protobuf_oneof:"Body"`
+	Body                 isJSONElement_Body `protobuf_oneof:"body"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -1278,7 +1278,7 @@ func (m *JSONElement) Reset()         { *m = JSONElement{} }
 func (m *JSONElement) String() string { return proto.CompactTextString(m) }
 func (*JSONElement) ProtoMessage()    {}
 func (*JSONElement) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{5}
+	return fileDescriptor_36361b2f5d0f0896, []int{5}
 }
 func (m *JSONElement) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -1414,7 +1414,7 @@ func (m *JSONElement_JSONObject) Reset()         { *m = JSONElement_JSONObject{}
 func (m *JSONElement_JSONObject) String() string { return proto.CompactTextString(m) }
 func (*JSONElement_JSONObject) ProtoMessage()    {}
 func (*JSONElement_JSONObject) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{5, 0}
+	return fileDescriptor_36361b2f5d0f0896, []int{5, 0}
 }
 func (m *JSONElement_JSONObject) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -1485,7 +1485,7 @@ func (m *JSONElement_JSONArray) Reset()         { *m = JSONElement_JSONArray{} }
 func (m *JSONElement_JSONArray) String() string { return proto.CompactTextString(m) }
 func (*JSONElement_JSONArray) ProtoMessage()    {}
 func (*JSONElement_JSONArray) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{5, 1}
+	return fileDescriptor_36361b2f5d0f0896, []int{5, 1}
 }
 func (m *JSONElement_JSONArray) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -1543,7 +1543,7 @@ func (m *JSONElement_JSONArray) GetRemovedAt() *TimeTicket {
 }
 
 type JSONElement_Primitive struct {
-	Type                 ValueType   `protobuf:"varint,1,opt,name=type,proto3,enum=api.ValueType" json:"type,omitempty"`
+	Type                 ValueType   `protobuf:"varint,1,opt,name=type,proto3,enum=yorkie.v1.ValueType" json:"type,omitempty"`
 	Value                []byte      `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
 	CreatedAt            *TimeTicket `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
 	MovedAt              *TimeTicket `protobuf:"bytes,4,opt,name=moved_at,json=movedAt,proto3" json:"moved_at,omitempty"`
@@ -1557,7 +1557,7 @@ func (m *JSONElement_Primitive) Reset()         { *m = JSONElement_Primitive{} }
 func (m *JSONElement_Primitive) String() string { return proto.CompactTextString(m) }
 func (*JSONElement_Primitive) ProtoMessage()    {}
 func (*JSONElement_Primitive) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{5, 2}
+	return fileDescriptor_36361b2f5d0f0896, []int{5, 2}
 }
 func (m *JSONElement_Primitive) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -1590,7 +1590,7 @@ func (m *JSONElement_Primitive) GetType() ValueType {
 	if m != nil {
 		return m.Type
 	}
-	return ValueType_NULL
+	return ValueType_VALUE_TYPE_NULL
 }
 
 func (m *JSONElement_Primitive) GetValue() []byte {
@@ -1635,7 +1635,7 @@ func (m *JSONElement_Text) Reset()         { *m = JSONElement_Text{} }
 func (m *JSONElement_Text) String() string { return proto.CompactTextString(m) }
 func (*JSONElement_Text) ProtoMessage()    {}
 func (*JSONElement_Text) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{5, 3}
+	return fileDescriptor_36361b2f5d0f0896, []int{5, 3}
 }
 func (m *JSONElement_Text) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -1706,7 +1706,7 @@ func (m *JSONElement_RichText) Reset()         { *m = JSONElement_RichText{} }
 func (m *JSONElement_RichText) String() string { return proto.CompactTextString(m) }
 func (*JSONElement_RichText) ProtoMessage()    {}
 func (*JSONElement_RichText) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{5, 4}
+	return fileDescriptor_36361b2f5d0f0896, []int{5, 4}
 }
 func (m *JSONElement_RichText) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -1764,7 +1764,7 @@ func (m *JSONElement_RichText) GetRemovedAt() *TimeTicket {
 }
 
 type JSONElement_Counter struct {
-	Type                 ValueType   `protobuf:"varint,1,opt,name=type,proto3,enum=api.ValueType" json:"type,omitempty"`
+	Type                 ValueType   `protobuf:"varint,1,opt,name=type,proto3,enum=yorkie.v1.ValueType" json:"type,omitempty"`
 	Value                []byte      `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
 	CreatedAt            *TimeTicket `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
 	MovedAt              *TimeTicket `protobuf:"bytes,4,opt,name=moved_at,json=movedAt,proto3" json:"moved_at,omitempty"`
@@ -1778,7 +1778,7 @@ func (m *JSONElement_Counter) Reset()         { *m = JSONElement_Counter{} }
 func (m *JSONElement_Counter) String() string { return proto.CompactTextString(m) }
 func (*JSONElement_Counter) ProtoMessage()    {}
 func (*JSONElement_Counter) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{5, 5}
+	return fileDescriptor_36361b2f5d0f0896, []int{5, 5}
 }
 func (m *JSONElement_Counter) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -1811,7 +1811,7 @@ func (m *JSONElement_Counter) GetType() ValueType {
 	if m != nil {
 		return m.Type
 	}
-	return ValueType_NULL
+	return ValueType_VALUE_TYPE_NULL
 }
 
 func (m *JSONElement_Counter) GetValue() []byte {
@@ -1854,7 +1854,7 @@ func (m *RHTNode) Reset()         { *m = RHTNode{} }
 func (m *RHTNode) String() string { return proto.CompactTextString(m) }
 func (*RHTNode) ProtoMessage()    {}
 func (*RHTNode) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{6}
+	return fileDescriptor_36361b2f5d0f0896, []int{6}
 }
 func (m *RHTNode) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -1909,7 +1909,7 @@ func (m *RGANode) Reset()         { *m = RGANode{} }
 func (m *RGANode) String() string { return proto.CompactTextString(m) }
 func (*RGANode) ProtoMessage()    {}
 func (*RGANode) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{7}
+	return fileDescriptor_36361b2f5d0f0896, []int{7}
 }
 func (m *RGANode) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -1966,7 +1966,7 @@ func (m *TextNode) Reset()         { *m = TextNode{} }
 func (m *TextNode) String() string { return proto.CompactTextString(m) }
 func (*TextNode) ProtoMessage()    {}
 func (*TextNode) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{8}
+	return fileDescriptor_36361b2f5d0f0896, []int{8}
 }
 func (m *TextNode) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -2036,7 +2036,7 @@ func (m *RichTextNodeAttr) Reset()         { *m = RichTextNodeAttr{} }
 func (m *RichTextNodeAttr) String() string { return proto.CompactTextString(m) }
 func (*RichTextNodeAttr) ProtoMessage()    {}
 func (*RichTextNodeAttr) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{9}
+	return fileDescriptor_36361b2f5d0f0896, []int{9}
 }
 func (m *RichTextNodeAttr) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -2101,7 +2101,7 @@ func (m *RichTextNode) Reset()         { *m = RichTextNode{} }
 func (m *RichTextNode) String() string { return proto.CompactTextString(m) }
 func (*RichTextNode) ProtoMessage()    {}
 func (*RichTextNode) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{10}
+	return fileDescriptor_36361b2f5d0f0896, []int{10}
 }
 func (m *RichTextNode) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -2177,7 +2177,7 @@ func (m *TextNodeID) Reset()         { *m = TextNodeID{} }
 func (m *TextNodeID) String() string { return proto.CompactTextString(m) }
 func (*TextNodeID) ProtoMessage()    {}
 func (*TextNodeID) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{11}
+	return fileDescriptor_36361b2f5d0f0896, []int{11}
 }
 func (m *TextNodeID) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -2233,7 +2233,7 @@ func (m *User) Reset()         { *m = User{} }
 func (m *User) String() string { return proto.CompactTextString(m) }
 func (*User) ProtoMessage()    {}
 func (*User) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{12}
+	return fileDescriptor_36361b2f5d0f0896, []int{12}
 }
 func (m *User) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -2301,7 +2301,7 @@ func (m *Project) Reset()         { *m = Project{} }
 func (m *Project) String() string { return proto.CompactTextString(m) }
 func (*Project) ProtoMessage()    {}
 func (*Project) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{13}
+	return fileDescriptor_36361b2f5d0f0896, []int{13}
 }
 func (m *Project) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -2399,7 +2399,7 @@ func (m *UpdatableProjectFields) Reset()         { *m = UpdatableProjectFields{}
 func (m *UpdatableProjectFields) String() string { return proto.CompactTextString(m) }
 func (*UpdatableProjectFields) ProtoMessage()    {}
 func (*UpdatableProjectFields) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{14}
+	return fileDescriptor_36361b2f5d0f0896, []int{14}
 }
 func (m *UpdatableProjectFields) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -2464,7 +2464,7 @@ func (m *UpdatableProjectFields_AuthWebhookMethods) String() string {
 }
 func (*UpdatableProjectFields_AuthWebhookMethods) ProtoMessage() {}
 func (*UpdatableProjectFields_AuthWebhookMethods) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{14, 0}
+	return fileDescriptor_36361b2f5d0f0896, []int{14, 0}
 }
 func (m *UpdatableProjectFields_AuthWebhookMethods) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -2516,7 +2516,7 @@ func (m *DocumentSummary) Reset()         { *m = DocumentSummary{} }
 func (m *DocumentSummary) String() string { return proto.CompactTextString(m) }
 func (*DocumentSummary) ProtoMessage()    {}
 func (*DocumentSummary) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{15}
+	return fileDescriptor_36361b2f5d0f0896, []int{15}
 }
 func (m *DocumentSummary) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -2599,7 +2599,7 @@ func (m *Presence) Reset()         { *m = Presence{} }
 func (m *Presence) String() string { return proto.CompactTextString(m) }
 func (*Presence) ProtoMessage()    {}
 func (*Presence) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{16}
+	return fileDescriptor_36361b2f5d0f0896, []int{16}
 }
 func (m *Presence) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -2654,7 +2654,7 @@ func (m *Client) Reset()         { *m = Client{} }
 func (m *Client) String() string { return proto.CompactTextString(m) }
 func (*Client) ProtoMessage()    {}
 func (*Client) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{17}
+	return fileDescriptor_36361b2f5d0f0896, []int{17}
 }
 func (m *Client) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -2708,7 +2708,7 @@ func (m *Clients) Reset()         { *m = Clients{} }
 func (m *Clients) String() string { return proto.CompactTextString(m) }
 func (*Clients) ProtoMessage()    {}
 func (*Clients) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{18}
+	return fileDescriptor_36361b2f5d0f0896, []int{18}
 }
 func (m *Clients) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -2756,7 +2756,7 @@ func (m *Checkpoint) Reset()         { *m = Checkpoint{} }
 func (m *Checkpoint) String() string { return proto.CompactTextString(m) }
 func (*Checkpoint) ProtoMessage()    {}
 func (*Checkpoint) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{19}
+	return fileDescriptor_36361b2f5d0f0896, []int{19}
 }
 func (m *Checkpoint) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -2812,7 +2812,7 @@ func (m *TextNodePos) Reset()         { *m = TextNodePos{} }
 func (m *TextNodePos) String() string { return proto.CompactTextString(m) }
 func (*TextNodePos) ProtoMessage()    {}
 func (*TextNodePos) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{20}
+	return fileDescriptor_36361b2f5d0f0896, []int{20}
 }
 func (m *TextNodePos) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -2875,7 +2875,7 @@ func (m *TimeTicket) Reset()         { *m = TimeTicket{} }
 func (m *TimeTicket) String() string { return proto.CompactTextString(m) }
 func (*TimeTicket) ProtoMessage()    {}
 func (*TimeTicket) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{21}
+	return fileDescriptor_36361b2f5d0f0896, []int{21}
 }
 func (m *TimeTicket) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -2926,7 +2926,7 @@ func (m *TimeTicket) GetActorId() []byte {
 }
 
 type DocEvent struct {
-	Type                 DocEventType `protobuf:"varint,1,opt,name=type,proto3,enum=api.DocEventType" json:"type,omitempty"`
+	Type                 DocEventType `protobuf:"varint,1,opt,name=type,proto3,enum=yorkie.v1.DocEventType" json:"type,omitempty"`
 	Publisher            *Client      `protobuf:"bytes,2,opt,name=publisher,proto3" json:"publisher,omitempty"`
 	DocumentKeys         []string     `protobuf:"bytes,3,rep,name=document_keys,json=documentKeys,proto3" json:"document_keys,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
@@ -2938,7 +2938,7 @@ func (m *DocEvent) Reset()         { *m = DocEvent{} }
 func (m *DocEvent) String() string { return proto.CompactTextString(m) }
 func (*DocEvent) ProtoMessage()    {}
 func (*DocEvent) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cf1b13971fe4c19d, []int{22}
+	return fileDescriptor_36361b2f5d0f0896, []int{22}
 }
 func (m *DocEvent) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -2971,7 +2971,7 @@ func (m *DocEvent) GetType() DocEventType {
 	if m != nil {
 		return m.Type
 	}
-	return DocEventType_DOCUMENTS_CHANGED
+	return DocEventType_DOC_EVENT_TYPE_DOCUMENTS_CHANGED
 }
 
 func (m *DocEvent) GetPublisher() *Client {
@@ -2989,197 +2989,202 @@ func (m *DocEvent) GetDocumentKeys() []string {
 }
 
 func init() {
-	proto.RegisterEnum("api.ValueType", ValueType_name, ValueType_value)
-	proto.RegisterEnum("api.DocEventType", DocEventType_name, DocEventType_value)
-	proto.RegisterType((*ChangePack)(nil), "api.ChangePack")
-	proto.RegisterType((*Change)(nil), "api.Change")
-	proto.RegisterType((*ChangeID)(nil), "api.ChangeID")
-	proto.RegisterType((*Operation)(nil), "api.Operation")
-	proto.RegisterType((*Operation_Set)(nil), "api.Operation.Set")
-	proto.RegisterType((*Operation_Add)(nil), "api.Operation.Add")
-	proto.RegisterType((*Operation_Move)(nil), "api.Operation.Move")
-	proto.RegisterType((*Operation_Remove)(nil), "api.Operation.Remove")
-	proto.RegisterType((*Operation_Edit)(nil), "api.Operation.Edit")
-	proto.RegisterMapType((map[string]*TimeTicket)(nil), "api.Operation.Edit.CreatedAtMapByActorEntry")
-	proto.RegisterType((*Operation_Select)(nil), "api.Operation.Select")
-	proto.RegisterType((*Operation_RichEdit)(nil), "api.Operation.RichEdit")
-	proto.RegisterMapType((map[string]string)(nil), "api.Operation.RichEdit.AttributesEntry")
-	proto.RegisterMapType((map[string]*TimeTicket)(nil), "api.Operation.RichEdit.CreatedAtMapByActorEntry")
-	proto.RegisterType((*Operation_Style)(nil), "api.Operation.Style")
-	proto.RegisterMapType((map[string]string)(nil), "api.Operation.Style.AttributesEntry")
-	proto.RegisterType((*Operation_Increase)(nil), "api.Operation.Increase")
-	proto.RegisterType((*JSONElementSimple)(nil), "api.JSONElementSimple")
-	proto.RegisterType((*JSONElement)(nil), "api.JSONElement")
-	proto.RegisterType((*JSONElement_JSONObject)(nil), "api.JSONElement.JSONObject")
-	proto.RegisterType((*JSONElement_JSONArray)(nil), "api.JSONElement.JSONArray")
-	proto.RegisterType((*JSONElement_Primitive)(nil), "api.JSONElement.Primitive")
-	proto.RegisterType((*JSONElement_Text)(nil), "api.JSONElement.Text")
-	proto.RegisterType((*JSONElement_RichText)(nil), "api.JSONElement.RichText")
-	proto.RegisterType((*JSONElement_Counter)(nil), "api.JSONElement.Counter")
-	proto.RegisterType((*RHTNode)(nil), "api.RHTNode")
-	proto.RegisterType((*RGANode)(nil), "api.RGANode")
-	proto.RegisterType((*TextNode)(nil), "api.TextNode")
-	proto.RegisterType((*RichTextNodeAttr)(nil), "api.RichTextNodeAttr")
-	proto.RegisterType((*RichTextNode)(nil), "api.RichTextNode")
-	proto.RegisterMapType((map[string]*RichTextNodeAttr)(nil), "api.RichTextNode.AttributesEntry")
-	proto.RegisterType((*TextNodeID)(nil), "api.TextNodeID")
-	proto.RegisterType((*User)(nil), "api.User")
-	proto.RegisterType((*Project)(nil), "api.Project")
-	proto.RegisterType((*UpdatableProjectFields)(nil), "api.UpdatableProjectFields")
-	proto.RegisterType((*UpdatableProjectFields_AuthWebhookMethods)(nil), "api.UpdatableProjectFields.AuthWebhookMethods")
-	proto.RegisterType((*DocumentSummary)(nil), "api.DocumentSummary")
-	proto.RegisterType((*Presence)(nil), "api.Presence")
-	proto.RegisterMapType((map[string]string)(nil), "api.Presence.DataEntry")
-	proto.RegisterType((*Client)(nil), "api.Client")
-	proto.RegisterType((*Clients)(nil), "api.Clients")
-	proto.RegisterType((*Checkpoint)(nil), "api.Checkpoint")
-	proto.RegisterType((*TextNodePos)(nil), "api.TextNodePos")
-	proto.RegisterType((*TimeTicket)(nil), "api.TimeTicket")
-	proto.RegisterType((*DocEvent)(nil), "api.DocEvent")
-}
-
-func init() { proto.RegisterFile("resources.proto", fileDescriptor_cf1b13971fe4c19d) }
-
-var fileDescriptor_cf1b13971fe4c19d = []byte{
-	// 2206 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x59, 0xcd, 0x6f, 0xdb, 0xc8,
-	0x15, 0x17, 0x29, 0xea, 0x83, 0x4f, 0xb2, 0xcd, 0x4c, 0xbe, 0xb4, 0x6a, 0xe2, 0x75, 0xb4, 0x9b,
-	0xc6, 0xc9, 0x06, 0xb2, 0x91, 0x7e, 0xec, 0x76, 0x83, 0x16, 0x90, 0x25, 0xad, 0xe5, 0x5d, 0x47,
-	0x32, 0x28, 0xb9, 0xe9, 0x9e, 0x58, 0x8a, 0x1c, 0xdb, 0x8c, 0x25, 0x92, 0x21, 0x29, 0x6f, 0x74,
-	0x29, 0xd0, 0x02, 0xed, 0xa1, 0xe7, 0x1e, 0x7a, 0x2e, 0x16, 0xd8, 0x7f, 0xa0, 0x40, 0x0f, 0x6d,
-	0x91, 0x43, 0x2f, 0x7b, 0xdb, 0xf6, 0x58, 0x14, 0x28, 0x16, 0xe9, 0x3f, 0x52, 0xcc, 0x07, 0x25,
-	0x92, 0x92, 0xa3, 0x08, 0xde, 0x62, 0x8d, 0xde, 0x38, 0xf3, 0x7e, 0xef, 0x63, 0xde, 0x7b, 0xf3,
-	0xe6, 0x0d, 0x07, 0xd6, 0x3c, 0xec, 0x3b, 0x23, 0xcf, 0xc0, 0x7e, 0xd5, 0xf5, 0x9c, 0xc0, 0x41,
-	0x69, 0xdd, 0xb5, 0xca, 0x6f, 0x1f, 0x3b, 0xce, 0xf1, 0x00, 0x6f, 0xd1, 0xa9, 0xfe, 0xe8, 0x68,
-	0x2b, 0xb0, 0x86, 0xd8, 0x0f, 0xf4, 0xa1, 0xcb, 0x50, 0xe5, 0xf5, 0x24, 0xe0, 0x33, 0x4f, 0x77,
-	0x5d, 0xec, 0x71, 0x29, 0x95, 0xaf, 0x05, 0x80, 0xfa, 0x89, 0x6e, 0x1f, 0xe3, 0x03, 0xdd, 0x38,
-	0x45, 0x77, 0xa0, 0x68, 0x3a, 0xc6, 0x68, 0x88, 0xed, 0x40, 0x3b, 0xc5, 0xe3, 0x92, 0xb0, 0x21,
-	0x6c, 0xca, 0x6a, 0x21, 0x9c, 0xfb, 0x04, 0x8f, 0xd1, 0x16, 0x80, 0x71, 0x82, 0x8d, 0x53, 0xd7,
-	0xb1, 0xec, 0xa0, 0x24, 0x6e, 0x08, 0x9b, 0x85, 0x47, 0x6b, 0x55, 0xdd, 0xb5, 0xaa, 0xf5, 0xc9,
-	0xb4, 0x1a, 0x81, 0xa0, 0x32, 0xe4, 0x7d, 0x5b, 0x77, 0xfd, 0x13, 0x27, 0x28, 0xa5, 0x37, 0x84,
-	0xcd, 0xa2, 0x3a, 0x19, 0xa3, 0xbb, 0x90, 0x33, 0xa8, 0x76, 0xbf, 0x24, 0x6d, 0xa4, 0x37, 0x0b,
-	0x8f, 0x0a, 0x5c, 0x12, 0x99, 0x53, 0x43, 0x1a, 0x7a, 0x0c, 0x57, 0x86, 0x96, 0xad, 0xf9, 0x63,
-	0xdb, 0xc0, 0xa6, 0x16, 0x58, 0xc6, 0x29, 0x0e, 0x4a, 0x99, 0x88, 0xea, 0x9e, 0x35, 0xc4, 0x3d,
-	0x3a, 0xad, 0xae, 0x0d, 0x2d, 0xbb, 0x4b, 0x81, 0x6c, 0xa2, 0xf2, 0x1c, 0xb2, 0x4c, 0x1e, 0xba,
-	0x0d, 0xa2, 0x65, 0xd2, 0x35, 0x15, 0x1e, 0xad, 0x44, 0x14, 0xed, 0x35, 0x54, 0xd1, 0x32, 0x51,
-	0x09, 0x72, 0x43, 0xec, 0xfb, 0xfa, 0x31, 0xa6, 0xcb, 0x92, 0xd5, 0x70, 0x88, 0xaa, 0x00, 0x8e,
-	0x8b, 0x3d, 0x3d, 0xb0, 0x1c, 0xdb, 0x2f, 0xa5, 0xa9, 0xa5, 0xab, 0x54, 0x40, 0x27, 0x9c, 0x56,
-	0x23, 0x88, 0xca, 0xaf, 0x05, 0xc8, 0x87, 0xa2, 0xd1, 0x6d, 0x00, 0x63, 0x60, 0x11, 0x8f, 0xfa,
-	0xf8, 0x39, 0xd5, 0xbe, 0xa2, 0xca, 0x6c, 0xa6, 0x8b, 0x9f, 0xa3, 0x3b, 0x00, 0x3e, 0xf6, 0xce,
-	0xb0, 0x47, 0xc9, 0x44, 0x71, 0x7a, 0x47, 0xdc, 0x16, 0x54, 0x99, 0xcd, 0x12, 0xc8, 0x2d, 0xc8,
-	0x0d, 0xf4, 0xa1, 0xeb, 0x78, 0xcc, 0x81, 0x8c, 0x1e, 0x4e, 0xa1, 0xb7, 0x20, 0xaf, 0x1b, 0x81,
-	0xe3, 0x69, 0x96, 0x59, 0x92, 0xa8, 0x7f, 0x73, 0x74, 0xbc, 0x67, 0x56, 0xbe, 0xbc, 0x01, 0xf2,
-	0xc4, 0x42, 0xf4, 0x5d, 0x48, 0xfb, 0x38, 0xe0, 0xeb, 0x47, 0x71, 0xf3, 0xab, 0x5d, 0x1c, 0xb4,
-	0x52, 0x2a, 0x01, 0x10, 0x9c, 0x6e, 0x9a, 0x3c, 0xb4, 0x49, 0x5c, 0xcd, 0x34, 0x09, 0x4e, 0x37,
-	0x4d, 0x74, 0x1f, 0xa4, 0xa1, 0x73, 0x86, 0xa9, 0x4d, 0x85, 0x47, 0x57, 0x13, 0xc0, 0x27, 0xce,
-	0x19, 0x6e, 0xa5, 0x54, 0x0a, 0x41, 0x5b, 0x90, 0xf5, 0x30, 0x05, 0x4b, 0x14, 0x7c, 0x3d, 0x01,
-	0x56, 0x29, 0xb1, 0x95, 0x52, 0x39, 0x8c, 0xc8, 0xc6, 0xa6, 0x15, 0x06, 0x39, 0x29, 0xbb, 0x69,
-	0x5a, 0xc4, 0x5a, 0x0a, 0x21, 0xb2, 0x7d, 0x3c, 0xc0, 0x46, 0x50, 0xca, 0xce, 0x95, 0xdd, 0xa5,
-	0x44, 0x22, 0x9b, 0xc1, 0xd0, 0x0f, 0x41, 0xf6, 0x2c, 0xe3, 0x44, 0xa3, 0x0a, 0x72, 0x94, 0xe7,
-	0x66, 0xd2, 0x1e, 0xcb, 0x38, 0xe1, 0x4a, 0xf2, 0x1e, 0xff, 0x46, 0x0f, 0x21, 0xe3, 0x07, 0xe3,
-	0x01, 0x2e, 0xe5, 0x29, 0xcf, 0xb5, 0xa4, 0x1e, 0x42, 0x6b, 0xa5, 0x54, 0x06, 0x42, 0x3f, 0x80,
-	0xbc, 0x65, 0x1b, 0x1e, 0xd6, 0x7d, 0x5c, 0x92, 0xe7, 0x2a, 0xd9, 0xe3, 0x64, 0xa2, 0x24, 0x84,
-	0x96, 0xff, 0x28, 0x40, 0xba, 0x8b, 0x03, 0x92, 0xf2, 0xae, 0xee, 0x91, 0xac, 0x21, 0x84, 0x00,
-	0x9b, 0x9a, 0x1e, 0x86, 0x6e, 0x36, 0xe5, 0x19, 0xb2, 0xce, 0x80, 0xb5, 0x00, 0x29, 0x90, 0x26,
-	0xbb, 0x97, 0x65, 0x31, 0xf9, 0x24, 0xb6, 0x9f, 0xe9, 0x83, 0x51, 0x18, 0xac, 0x1b, 0x54, 0xc4,
-	0xc7, 0xdd, 0x4e, 0xbb, 0x39, 0xc0, 0x64, 0x67, 0x77, 0xad, 0xa1, 0x3b, 0xc0, 0x2a, 0x03, 0xa1,
-	0x6d, 0x28, 0xe0, 0x17, 0xd8, 0x18, 0x71, 0xb5, 0xd2, 0x7c, 0xb5, 0x10, 0x62, 0x6a, 0x41, 0xf9,
-	0x5f, 0x02, 0xa4, 0x6b, 0xa6, 0x79, 0x31, 0xb3, 0xdf, 0x87, 0x35, 0xd7, 0xc3, 0x67, 0x51, 0x56,
-	0x71, 0x3e, 0xeb, 0x0a, 0xc1, 0x4d, 0x19, 0xff, 0xd7, 0xab, 0xfb, 0xb7, 0x00, 0x12, 0xc9, 0xe7,
-	0x6f, 0x69, 0x79, 0x55, 0x80, 0x08, 0x4f, 0x7a, 0x3e, 0x8f, 0x6c, 0x4c, 0xf0, 0xcb, 0x2f, 0xf0,
-	0x0b, 0x01, 0xb2, 0x6c, 0x0f, 0x5e, 0x6c, 0x89, 0x71, 0x4b, 0xc5, 0x65, 0x2d, 0x4d, 0x2f, 0xb6,
-	0xf4, 0x77, 0x69, 0x90, 0xe8, 0x6e, 0xbc, 0x90, 0x9d, 0xef, 0x82, 0x74, 0xe4, 0x39, 0x43, 0x6e,
-	0xa1, 0xc2, 0xf0, 0xf8, 0x45, 0xd0, 0x76, 0x4c, 0x7c, 0xe0, 0xf8, 0x2a, 0xa5, 0xa2, 0x0d, 0x10,
-	0x03, 0x87, 0x1b, 0x35, 0x8b, 0x11, 0x03, 0x07, 0xf5, 0xe1, 0xe6, 0x54, 0xbb, 0x36, 0xd4, 0x5d,
-	0xad, 0x3f, 0xd6, 0x68, 0xf5, 0xe5, 0xe7, 0xd9, 0xc3, 0x39, 0x95, 0xab, 0x3a, 0xb1, 0xe3, 0x89,
-	0xee, 0xee, 0x8c, 0x6b, 0x04, 0xde, 0xb4, 0x03, 0x6f, 0xac, 0x5e, 0x35, 0x66, 0x29, 0xe4, 0x58,
-	0x32, 0x1c, 0x3b, 0xc0, 0x36, 0xab, 0x86, 0xb2, 0x1a, 0x0e, 0x93, 0xde, 0xcb, 0x2e, 0xf6, 0xde,
-	0x53, 0x28, 0x9d, 0xa7, 0x3c, 0x2c, 0x1a, 0xc2, 0xb4, 0x68, 0xdc, 0x0d, 0xb7, 0xd5, 0x39, 0x81,
-	0x64, 0xd4, 0x0f, 0xc5, 0x0f, 0x84, 0xf2, 0x4b, 0x01, 0xb2, 0xac, 0xd0, 0x5e, 0x8e, 0xc0, 0x2c,
-	0xbf, 0x05, 0x3e, 0x97, 0x20, 0x1f, 0x96, 0xfd, 0xcb, 0xb1, 0x86, 0xa3, 0x45, 0xc9, 0xb5, 0x7d,
-	0xce, 0xa9, 0xf5, 0x8d, 0x25, 0xd8, 0x2e, 0x80, 0x1e, 0x04, 0x9e, 0xd5, 0x1f, 0x05, 0xd8, 0x2f,
-	0x65, 0xa9, 0xd2, 0x7b, 0xe7, 0x29, 0xad, 0x4d, 0x90, 0x4c, 0x57, 0x84, 0x35, 0x19, 0x8e, 0xdc,
-	0xb7, 0x98, 0xa9, 0x3f, 0x86, 0xb5, 0x84, 0xa5, 0x73, 0xe4, 0x5d, 0x8b, 0xca, 0x93, 0xa3, 0xec,
-	0x7f, 0x13, 0x21, 0x43, 0x4f, 0xfa, 0xcb, 0x91, 0x23, 0x8d, 0x58, 0x84, 0x58, 0x5a, 0xbc, 0x3b,
-	0xaf, 0x31, 0x59, 0x26, 0x3c, 0x99, 0xc5, 0xe1, 0xb9, 0xa0, 0x17, 0xbf, 0x10, 0x20, 0x1f, 0xb6,
-	0x3f, 0x17, 0x73, 0xe4, 0xc3, 0x78, 0xe4, 0x97, 0x3b, 0xfa, 0x17, 0x9f, 0x37, 0x3b, 0x59, 0x90,
-	0xfa, 0x8e, 0x39, 0xae, 0xfc, 0x53, 0x80, 0x2b, 0x33, 0x62, 0x13, 0xe7, 0x9d, 0xb0, 0xf0, 0xbc,
-	0x7b, 0x00, 0x79, 0x72, 0xc8, 0xbe, 0xee, 0x74, 0xcc, 0x51, 0x00, 0x3b, 0x4b, 0x59, 0x33, 0xfc,
-	0xda, 0x53, 0x9f, 0x43, 0x6a, 0x01, 0xaa, 0x80, 0x14, 0x8c, 0x5d, 0xd6, 0x61, 0xaf, 0xf2, 0xeb,
-	0xc9, 0x4f, 0xc9, 0xaa, 0x7b, 0x63, 0x17, 0xab, 0x94, 0x36, 0x8d, 0x48, 0x86, 0x5e, 0x14, 0xd8,
-	0xa0, 0xf2, 0xdb, 0x22, 0x14, 0x22, 0x6b, 0x43, 0x3f, 0x81, 0xc2, 0x33, 0xdf, 0xb1, 0x35, 0xa7,
-	0xff, 0x8c, 0xb4, 0xd5, 0x6c, 0x59, 0xdf, 0x49, 0x7a, 0x96, 0x7e, 0x77, 0x28, 0xa4, 0x95, 0x52,
-	0x81, 0x70, 0xb0, 0x11, 0x7a, 0x0c, 0x74, 0xa4, 0xe9, 0x9e, 0xa7, 0x8f, 0xf9, 0x3a, 0xcb, 0x73,
-	0xd9, 0x6b, 0x04, 0xd1, 0x4a, 0xa9, 0x32, 0xc1, 0xd3, 0x01, 0xfa, 0x10, 0x64, 0xd7, 0xb3, 0x86,
-	0x56, 0x60, 0x4d, 0xae, 0x16, 0xb3, 0xbc, 0x07, 0x21, 0x82, 0xf0, 0x4e, 0xe0, 0xe8, 0x3d, 0x90,
-	0x02, 0xfc, 0x22, 0x88, 0x5d, 0x32, 0xa2, 0x6c, 0x64, 0xf7, 0x90, 0x7b, 0x03, 0x01, 0xa1, 0x0f,
-	0xf8, 0x35, 0x80, 0x72, 0xb0, 0x94, 0x7f, 0x6b, 0x86, 0x83, 0x54, 0x37, 0xce, 0x45, 0x2f, 0x02,
-	0xe4, 0x1b, 0x7d, 0x9f, 0x14, 0xcc, 0x91, 0x1d, 0x60, 0x8f, 0x9f, 0xb9, 0xa5, 0x19, 0xbe, 0x3a,
-	0xa3, 0xb7, 0x52, 0x6a, 0x08, 0x2d, 0xff, 0x45, 0x00, 0x98, 0xba, 0x0c, 0x55, 0x20, 0x63, 0x3b,
-	0x26, 0xf6, 0x4b, 0x02, 0xdd, 0xb4, 0x45, 0x2a, 0x42, 0x6d, 0xf5, 0xc8, 0xee, 0x56, 0x19, 0x69,
-	0xe9, 0x76, 0x2a, 0x9a, 0x5e, 0xe9, 0xa5, 0xd2, 0x4b, 0x5a, 0x94, 0x5e, 0xe5, 0x3f, 0x0b, 0x20,
-	0x4f, 0x42, 0x76, 0x8e, 0xf5, 0xbb, 0xb5, 0xcb, 0x6a, 0xfd, 0x3f, 0x04, 0x90, 0x27, 0x49, 0x33,
-	0xd9, 0x2a, 0xc2, 0x9b, 0x6c, 0x15, 0x31, 0xb2, 0x55, 0x96, 0x6e, 0xc5, 0xa3, 0x6b, 0x92, 0x96,
-	0x5a, 0x53, 0x66, 0xe1, 0x9a, 0xfe, 0x24, 0x80, 0x44, 0xf3, 0xf1, 0x9d, 0x78, 0x30, 0x56, 0x62,
-	0x27, 0xc5, 0x65, 0x8c, 0xc6, 0x4b, 0x81, 0xf5, 0x5a, 0xd4, 0xfa, 0x7b, 0x71, 0xeb, 0xaf, 0xb0,
-	0x54, 0xe2, 0xd4, 0xcb, 0xba, 0x82, 0xaf, 0x04, 0xc8, 0xf1, 0x3d, 0xfe, 0xff, 0x91, 0x4d, 0xe4,
-	0xa0, 0xdb, 0x21, 0x07, 0xdd, 0x2e, 0xe4, 0x78, 0x15, 0x9a, 0x73, 0xa2, 0x3f, 0x80, 0x1c, 0x66,
-	0x15, 0x2e, 0xd6, 0xb9, 0x44, 0x2a, 0x9f, 0x1a, 0x02, 0x2a, 0x4f, 0x21, 0xc7, 0x0b, 0x02, 0xda,
-	0x00, 0xc9, 0x26, 0x55, 0x96, 0x9d, 0x24, 0xf1, 0x62, 0x41, 0x29, 0x4b, 0x09, 0xfe, 0x83, 0x00,
-	0xf9, 0x30, 0x37, 0xd0, 0xdb, 0x91, 0x7f, 0x7a, 0x6b, 0xb1, 0xc4, 0xe7, 0x7f, 0xf5, 0xe6, 0x36,
-	0x21, 0x4b, 0x1f, 0xae, 0x5b, 0x50, 0xb0, 0x6c, 0x5f, 0xa3, 0xf7, 0x77, 0xfe, 0x9f, 0x6d, 0x8e,
-	0x3e, 0xd9, 0xb2, 0xfd, 0x03, 0x0f, 0x9f, 0xed, 0x99, 0x95, 0x67, 0xa0, 0x44, 0x73, 0x98, 0x34,
-	0x4b, 0x6f, 0xda, 0x21, 0x11, 0xe3, 0x46, 0xae, 0xb9, 0x28, 0x2d, 0x38, 0xa4, 0x16, 0x54, 0x5e,
-	0x8a, 0x50, 0x8c, 0x2a, 0x5b, 0xec, 0x94, 0x5a, 0xac, 0x6d, 0x14, 0xe9, 0xc6, 0xbb, 0x33, 0xb3,
-	0xf1, 0x5e, 0xdb, 0x33, 0x5e, 0x8b, 0xfe, 0x73, 0x39, 0xc7, 0xaf, 0xd2, 0xb2, 0x7e, 0xcd, 0x2c,
-	0xf2, 0x6b, 0xb9, 0xf7, 0x26, 0x8d, 0xe7, 0x7b, 0xf1, 0xa6, 0xf0, 0xfa, 0xcc, 0xca, 0x88, 0x88,
-	0x48, 0x3f, 0x5a, 0xe9, 0x01, 0x4c, 0xd5, 0x2d, 0xdd, 0xd5, 0xdd, 0x80, 0xac, 0x73, 0x74, 0xe4,
-	0x63, 0x96, 0xbb, 0x19, 0x95, 0x8f, 0x2a, 0x43, 0x90, 0x0e, 0x7d, 0xec, 0xa1, 0xd5, 0x49, 0x38,
-	0x64, 0xea, 0xfd, 0x32, 0xe4, 0x47, 0x3e, 0xf6, 0x6c, 0x7d, 0x18, 0x06, 0x7e, 0x32, 0x46, 0x3f,
-	0x9a, 0x53, 0x12, 0xca, 0x55, 0xf6, 0x17, 0xbf, 0x1a, 0xfe, 0xc5, 0xa7, 0x76, 0xd0, 0xdf, 0xfc,
-	0x11, 0x33, 0x2a, 0x7f, 0x15, 0x21, 0x77, 0xe0, 0x39, 0xb4, 0xbb, 0x48, 0xaa, 0x44, 0x20, 0x45,
-	0xd4, 0xd1, 0x6f, 0x74, 0x1b, 0xc0, 0x1d, 0xf5, 0x07, 0x96, 0x41, 0x7f, 0xf5, 0xb3, 0x30, 0xca,
-	0x6c, 0xe6, 0x13, 0x3c, 0x26, 0x64, 0x1f, 0x1b, 0x1e, 0x66, 0x2f, 0x01, 0x12, 0x23, 0xb3, 0x19,
-	0x42, 0xde, 0x04, 0x45, 0x1f, 0x05, 0x27, 0xda, 0x67, 0xb8, 0x7f, 0xe2, 0x38, 0xa7, 0xda, 0xc8,
-	0x1b, 0xf0, 0xeb, 0xe3, 0x2a, 0x99, 0x7f, 0xca, 0xa6, 0x0f, 0xbd, 0x01, 0xda, 0x86, 0x6b, 0x31,
-	0xe4, 0x10, 0x07, 0x27, 0x8e, 0xc9, 0xee, 0x93, 0xb2, 0x8a, 0x22, 0xe8, 0x27, 0x8c, 0x92, 0x70,
-	0x42, 0x6e, 0x09, 0x27, 0x10, 0xd6, 0xc8, 0xde, 0xc9, 0x2f, 0x66, 0x9d, 0x6e, 0xa3, 0xcf, 0x45,
-	0xb8, 0x71, 0x48, 0x46, 0x7a, 0x7f, 0x80, 0xb9, 0x23, 0x3f, 0xb2, 0xf0, 0xc0, 0x24, 0x17, 0x24,
-	0xe6, 0x3e, 0x96, 0x0b, 0xb7, 0x66, 0xe4, 0x75, 0x03, 0xcf, 0xb2, 0x8f, 0x69, 0xd1, 0xe7, 0xce,
-	0xfd, 0x68, 0x8e, 0x7b, 0xc4, 0x37, 0xe0, 0x4e, 0x3a, 0xef, 0xe7, 0xe7, 0x38, 0x8f, 0x65, 0x46,
-	0x95, 0x66, 0xe5, 0x7c, 0xa3, 0xab, 0xb5, 0x19, 0xc7, 0xce, 0x73, 0x76, 0xb9, 0x0a, 0x68, 0x16,
-	0xc9, 0x1e, 0x43, 0x98, 0x2a, 0x81, 0xc6, 0x29, 0x1c, 0x56, 0x7e, 0x25, 0xc2, 0x5a, 0x83, 0x3f,
-	0x08, 0x75, 0x47, 0xc3, 0xa1, 0xee, 0x8d, 0x67, 0xd2, 0x6d, 0xf6, 0x07, 0x74, 0xf2, 0x15, 0x48,
-	0x8e, 0xbc, 0x02, 0xc5, 0xc3, 0x2d, 0x2d, 0x13, 0xee, 0xc7, 0x50, 0xd0, 0x0d, 0x03, 0xfb, 0x7e,
-	0xf4, 0x98, 0x7b, 0x1d, 0x2f, 0x84, 0xf0, 0x99, 0x5c, 0xc9, 0x2e, 0x93, 0x2b, 0xbf, 0x11, 0x20,
-	0x7f, 0xe0, 0x61, 0x1f, 0xdb, 0x06, 0x3d, 0xdc, 0x8d, 0x81, 0x63, 0x9c, 0x52, 0x07, 0x64, 0x54,
-	0x36, 0x20, 0x97, 0x11, 0x12, 0x16, 0x5e, 0x5d, 0xd9, 0xcf, 0xff, 0x90, 0xa5, 0xda, 0xd0, 0x03,
-	0x9d, 0xd5, 0x54, 0x0a, 0x2a, 0xbf, 0x0f, 0xf2, 0x64, 0x6a, 0x99, 0x9b, 0x74, 0xa5, 0x0e, 0xd9,
-	0x3a, 0x7d, 0x4b, 0x8a, 0xc4, 0xa0, 0x48, 0x63, 0x70, 0x1f, 0xf2, 0x2e, 0x57, 0xc7, 0x33, 0x6f,
-	0x25, 0x66, 0x83, 0x3a, 0x21, 0x57, 0xb6, 0x21, 0xc7, 0x84, 0xf8, 0xf4, 0x45, 0x8e, 0x7d, 0xf2,
-	0x7e, 0x8c, 0xbf, 0xc8, 0xd1, 0x39, 0x35, 0xa4, 0x55, 0xda, 0x00, 0xd3, 0xe7, 0xbe, 0xc4, 0x1b,
-	0x96, 0x30, 0xef, 0x0d, 0x2b, 0xfe, 0x0a, 0x26, 0x26, 0x5e, 0xc1, 0x2a, 0xbf, 0x80, 0x42, 0xe4,
-	0xd7, 0xc6, 0x37, 0x55, 0x81, 0xd1, 0x3d, 0x58, 0xf3, 0xf0, 0x40, 0x27, 0x4d, 0xbf, 0xc6, 0x01,
-	0x69, 0x0a, 0x58, 0x0d, 0xa7, 0x3b, 0xac, 0x54, 0x1b, 0x00, 0x53, 0xc9, 0xd1, 0x07, 0x37, 0x61,
-	0xf6, 0xc1, 0xed, 0x16, 0xc8, 0x26, 0x1e, 0x90, 0xbb, 0x04, 0xf6, 0xc2, 0x95, 0x4c, 0x26, 0x62,
-	0xcf, 0x71, 0xe9, 0xf8, 0x73, 0xdc, 0x2f, 0x05, 0xc8, 0x37, 0x1c, 0xa3, 0x79, 0x46, 0xc2, 0x75,
-	0x37, 0xd6, 0x35, 0xb2, 0xae, 0x37, 0x24, 0x46, 0x1a, 0xc7, 0xfb, 0xc0, 0x4a, 0xb2, 0x7f, 0xc2,
-	0x95, 0x25, 0x22, 0x32, 0xa5, 0xa2, 0x77, 0x60, 0x25, 0xfa, 0x78, 0xcb, 0x1e, 0x2a, 0x65, 0xb5,
-	0x18, 0x79, 0xbd, 0xf5, 0x1f, 0x7c, 0x25, 0x80, 0x3c, 0x69, 0x4e, 0x51, 0x1e, 0xa4, 0xf6, 0xe1,
-	0xfe, 0xbe, 0x92, 0x42, 0x05, 0xc8, 0xed, 0x74, 0x3a, 0xfb, 0xcd, 0x5a, 0x5b, 0x11, 0xc8, 0x60,
-	0xaf, 0xdd, 0x6b, 0xee, 0x36, 0x55, 0x45, 0x24, 0x98, 0xfd, 0x4e, 0x7b, 0x57, 0x49, 0x23, 0x80,
-	0x6c, 0xa3, 0x73, 0xb8, 0xb3, 0xdf, 0x54, 0x24, 0xf2, 0xdd, 0xed, 0xa9, 0x7b, 0xed, 0x5d, 0x25,
-	0x83, 0x64, 0xc8, 0xec, 0x7c, 0xda, 0x6b, 0x76, 0x95, 0x2c, 0x01, 0x37, 0x6a, 0xbd, 0xa6, 0x92,
-	0x43, 0x6b, 0xec, 0x9f, 0x82, 0xd6, 0xd9, 0xf9, 0xb8, 0x59, 0xef, 0x29, 0x79, 0xb4, 0xca, 0xae,
-	0xbf, 0x5a, 0x4d, 0x55, 0x6b, 0x9f, 0x2a, 0x32, 0x81, 0xf6, 0x9a, 0x3f, 0xeb, 0x29, 0x80, 0x56,
-	0x40, 0x56, 0xf7, 0xea, 0x2d, 0x8d, 0x0e, 0x0b, 0x84, 0x93, 0x6b, 0xd7, 0xea, 0xed, 0x9e, 0x52,
-	0x44, 0x45, 0xc8, 0x13, 0x0b, 0xe8, 0x68, 0x85, 0xc8, 0x61, 0x56, 0xd0, 0xf1, 0xea, 0x83, 0x53,
-	0x28, 0x46, 0xfd, 0x86, 0xae, 0xc3, 0x95, 0x46, 0xa7, 0x7e, 0xf8, 0xa4, 0xd9, 0xee, 0x75, 0xb5,
-	0x7a, 0xab, 0xd6, 0xde, 0x6d, 0x36, 0x94, 0x54, 0x7c, 0xfa, 0x69, 0xad, 0x57, 0x6f, 0x35, 0x1b,
-	0x8a, 0x80, 0x6e, 0xc2, 0xd5, 0xe9, 0xf4, 0x61, 0x3b, 0x24, 0x88, 0xe8, 0x1a, 0x28, 0x07, 0x6a,
-	0xb3, 0xdb, 0x6c, 0xd7, 0x9b, 0x13, 0x29, 0xe9, 0x1d, 0xe5, 0xcb, 0x57, 0xeb, 0xc2, 0xdf, 0x5f,
-	0xad, 0x0b, 0x5f, 0xbf, 0x5a, 0x17, 0x7e, 0xff, 0x9f, 0xf5, 0x54, 0x3f, 0x4b, 0x0b, 0xc5, 0xf7,
-	0xfe, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xdc, 0x25, 0x00, 0x49, 0xa1, 0x1f, 0x00, 0x00,
+	proto.RegisterEnum("yorkie.v1.ValueType", ValueType_name, ValueType_value)
+	proto.RegisterEnum("yorkie.v1.DocEventType", DocEventType_name, DocEventType_value)
+	proto.RegisterType((*ChangePack)(nil), "yorkie.v1.ChangePack")
+	proto.RegisterType((*Change)(nil), "yorkie.v1.Change")
+	proto.RegisterType((*ChangeID)(nil), "yorkie.v1.ChangeID")
+	proto.RegisterType((*Operation)(nil), "yorkie.v1.Operation")
+	proto.RegisterType((*Operation_Set)(nil), "yorkie.v1.Operation.Set")
+	proto.RegisterType((*Operation_Add)(nil), "yorkie.v1.Operation.Add")
+	proto.RegisterType((*Operation_Move)(nil), "yorkie.v1.Operation.Move")
+	proto.RegisterType((*Operation_Remove)(nil), "yorkie.v1.Operation.Remove")
+	proto.RegisterType((*Operation_Edit)(nil), "yorkie.v1.Operation.Edit")
+	proto.RegisterMapType((map[string]*TimeTicket)(nil), "yorkie.v1.Operation.Edit.CreatedAtMapByActorEntry")
+	proto.RegisterType((*Operation_Select)(nil), "yorkie.v1.Operation.Select")
+	proto.RegisterType((*Operation_RichEdit)(nil), "yorkie.v1.Operation.RichEdit")
+	proto.RegisterMapType((map[string]string)(nil), "yorkie.v1.Operation.RichEdit.AttributesEntry")
+	proto.RegisterMapType((map[string]*TimeTicket)(nil), "yorkie.v1.Operation.RichEdit.CreatedAtMapByActorEntry")
+	proto.RegisterType((*Operation_Style)(nil), "yorkie.v1.Operation.Style")
+	proto.RegisterMapType((map[string]string)(nil), "yorkie.v1.Operation.Style.AttributesEntry")
+	proto.RegisterType((*Operation_Increase)(nil), "yorkie.v1.Operation.Increase")
+	proto.RegisterType((*JSONElementSimple)(nil), "yorkie.v1.JSONElementSimple")
+	proto.RegisterType((*JSONElement)(nil), "yorkie.v1.JSONElement")
+	proto.RegisterType((*JSONElement_JSONObject)(nil), "yorkie.v1.JSONElement.JSONObject")
+	proto.RegisterType((*JSONElement_JSONArray)(nil), "yorkie.v1.JSONElement.JSONArray")
+	proto.RegisterType((*JSONElement_Primitive)(nil), "yorkie.v1.JSONElement.Primitive")
+	proto.RegisterType((*JSONElement_Text)(nil), "yorkie.v1.JSONElement.Text")
+	proto.RegisterType((*JSONElement_RichText)(nil), "yorkie.v1.JSONElement.RichText")
+	proto.RegisterType((*JSONElement_Counter)(nil), "yorkie.v1.JSONElement.Counter")
+	proto.RegisterType((*RHTNode)(nil), "yorkie.v1.RHTNode")
+	proto.RegisterType((*RGANode)(nil), "yorkie.v1.RGANode")
+	proto.RegisterType((*TextNode)(nil), "yorkie.v1.TextNode")
+	proto.RegisterType((*RichTextNodeAttr)(nil), "yorkie.v1.RichTextNodeAttr")
+	proto.RegisterType((*RichTextNode)(nil), "yorkie.v1.RichTextNode")
+	proto.RegisterMapType((map[string]*RichTextNodeAttr)(nil), "yorkie.v1.RichTextNode.AttributesEntry")
+	proto.RegisterType((*TextNodeID)(nil), "yorkie.v1.TextNodeID")
+	proto.RegisterType((*User)(nil), "yorkie.v1.User")
+	proto.RegisterType((*Project)(nil), "yorkie.v1.Project")
+	proto.RegisterType((*UpdatableProjectFields)(nil), "yorkie.v1.UpdatableProjectFields")
+	proto.RegisterType((*UpdatableProjectFields_AuthWebhookMethods)(nil), "yorkie.v1.UpdatableProjectFields.AuthWebhookMethods")
+	proto.RegisterType((*DocumentSummary)(nil), "yorkie.v1.DocumentSummary")
+	proto.RegisterType((*Presence)(nil), "yorkie.v1.Presence")
+	proto.RegisterMapType((map[string]string)(nil), "yorkie.v1.Presence.DataEntry")
+	proto.RegisterType((*Client)(nil), "yorkie.v1.Client")
+	proto.RegisterType((*Clients)(nil), "yorkie.v1.Clients")
+	proto.RegisterType((*Checkpoint)(nil), "yorkie.v1.Checkpoint")
+	proto.RegisterType((*TextNodePos)(nil), "yorkie.v1.TextNodePos")
+	proto.RegisterType((*TimeTicket)(nil), "yorkie.v1.TimeTicket")
+	proto.RegisterType((*DocEvent)(nil), "yorkie.v1.DocEvent")
+}
+
+func init() { proto.RegisterFile("yorkie/v1/resources.proto", fileDescriptor_36361b2f5d0f0896) }
+
+var fileDescriptor_36361b2f5d0f0896 = []byte{
+	// 2281 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x5a, 0xcd, 0x73, 0x1b, 0x49,
+	0x15, 0xf7, 0x8c, 0x46, 0x1f, 0xf3, 0xe4, 0xc4, 0x4a, 0xdb, 0x71, 0x14, 0x6d, 0xe2, 0x38, 0x0a,
+	0x64, 0x4d, 0xc2, 0xca, 0x89, 0x49, 0x02, 0x6c, 0x58, 0x0a, 0x59, 0x9e, 0xb5, 0x9c, 0xb5, 0x65,
+	0xd7, 0x48, 0xce, 0x92, 0x54, 0x51, 0x53, 0xe3, 0x99, 0x4e, 0x3c, 0x6b, 0x69, 0x46, 0x3b, 0x33,
+	0xf2, 0x46, 0x07, 0x2e, 0x14, 0xdc, 0xe0, 0xce, 0x7f, 0x40, 0x15, 0x67, 0x0e, 0xec, 0x01, 0x8e,
+	0x14, 0x27, 0xa0, 0x0a, 0xaa, 0xf6, 0x44, 0x15, 0x84, 0x03, 0x70, 0xe4, 0xa3, 0x38, 0x53, 0xdd,
+	0x3d, 0x33, 0x6e, 0x8d, 0x46, 0x8a, 0x22, 0x5c, 0x94, 0xb3, 0x37, 0x75, 0xf7, 0xef, 0xf5, 0xfb,
+	0xec, 0xd7, 0xaf, 0xe7, 0x09, 0x2e, 0xf7, 0x1d, 0xf7, 0xc8, 0xc2, 0xab, 0xc7, 0x77, 0x57, 0x5d,
+	0xec, 0x39, 0x3d, 0xd7, 0xc0, 0x5e, 0xa5, 0xeb, 0x3a, 0xbe, 0x83, 0x64, 0xb6, 0x54, 0x39, 0xbe,
+	0x5b, 0xba, 0xf6, 0xdc, 0x71, 0x9e, 0xb7, 0xf1, 0x2a, 0x5d, 0x38, 0xe8, 0x3d, 0x5b, 0xf5, 0xad,
+	0x0e, 0xf6, 0x7c, 0xbd, 0xd3, 0x65, 0xd8, 0xd2, 0x52, 0x1c, 0xf0, 0x89, 0xab, 0x77, 0xbb, 0xd8,
+	0x0d, 0xf6, 0x2a, 0xff, 0x53, 0x00, 0xa8, 0x1d, 0xea, 0xf6, 0x73, 0xbc, 0xa7, 0x1b, 0x47, 0xe8,
+	0x3a, 0xcc, 0x9a, 0x8e, 0xd1, 0xeb, 0x60, 0xdb, 0xd7, 0x8e, 0x70, 0xbf, 0x28, 0x2c, 0x0b, 0x2b,
+	0xb2, 0x9a, 0x0f, 0xe7, 0x3e, 0xc0, 0x7d, 0x74, 0x1f, 0xc0, 0x38, 0xc4, 0xc6, 0x51, 0xd7, 0xb1,
+	0x6c, 0xbf, 0x28, 0x2e, 0x0b, 0x2b, 0xf9, 0xb5, 0x8b, 0x95, 0x48, 0xa4, 0x4a, 0x2d, 0x5a, 0x54,
+	0x39, 0x20, 0x2a, 0x41, 0xce, 0xb3, 0xf5, 0xae, 0x77, 0xe8, 0xf8, 0xc5, 0xd4, 0xb2, 0xb0, 0x32,
+	0xab, 0x46, 0x63, 0x74, 0x1b, 0xb2, 0x06, 0x95, 0xc1, 0x2b, 0x4a, 0xcb, 0xa9, 0x95, 0xfc, 0xda,
+	0x85, 0x81, 0xfd, 0xc8, 0x8a, 0x1a, 0x22, 0x50, 0x15, 0x2e, 0x74, 0x2c, 0x5b, 0xf3, 0xfa, 0xb6,
+	0x81, 0x4d, 0xcd, 0xb7, 0x8c, 0x23, 0xec, 0x17, 0xd3, 0x43, 0x62, 0xb4, 0xac, 0x0e, 0x6e, 0xd1,
+	0x45, 0x75, 0xae, 0x63, 0xd9, 0x4d, 0x0a, 0x67, 0x13, 0xe5, 0xef, 0x42, 0x86, 0xed, 0x8a, 0x6e,
+	0x80, 0x68, 0x99, 0x54, 0xcb, 0xfc, 0xda, 0xfc, 0x10, 0xd3, 0xad, 0x0d, 0x55, 0xb4, 0x4c, 0x54,
+	0x84, 0x6c, 0x07, 0x7b, 0x9e, 0xfe, 0x1c, 0x53, 0x75, 0x65, 0x35, 0x1c, 0xa2, 0x7b, 0x00, 0x4e,
+	0x17, 0xbb, 0xba, 0x6f, 0x39, 0xb6, 0x57, 0x4c, 0x51, 0xd9, 0x17, 0xb8, 0x6d, 0x76, 0xc3, 0x45,
+	0x95, 0xc3, 0x95, 0x7f, 0x20, 0x40, 0x2e, 0x64, 0x80, 0xae, 0x02, 0x18, 0x6d, 0x8b, 0xd8, 0xdb,
+	0xc3, 0x1f, 0x53, 0x49, 0xce, 0xa9, 0x32, 0x9b, 0x69, 0xe2, 0x8f, 0xd1, 0x75, 0x00, 0x0f, 0xbb,
+	0xc7, 0xd8, 0xa5, 0xcb, 0x84, 0x7d, 0x6a, 0x5d, 0xbc, 0x23, 0xa8, 0x32, 0x9b, 0x25, 0x90, 0x2b,
+	0x90, 0x6d, 0xeb, 0x9d, 0xae, 0xe3, 0x32, 0xc3, 0xb2, 0xf5, 0x70, 0x0a, 0x5d, 0x86, 0x9c, 0x6e,
+	0xf8, 0x8e, 0xab, 0x59, 0x66, 0x51, 0xa2, 0x76, 0xcf, 0xd2, 0xf1, 0x96, 0x59, 0xfe, 0x5b, 0x11,
+	0xe4, 0x48, 0x42, 0xf4, 0x65, 0x48, 0x79, 0xd8, 0x0f, 0x6c, 0x51, 0x4c, 0x52, 0xa2, 0xd2, 0xc4,
+	0x7e, 0x7d, 0x46, 0x25, 0x30, 0x82, 0xd6, 0x4d, 0x33, 0x70, 0x7f, 0x32, 0xba, 0x6a, 0x9a, 0x04,
+	0xad, 0x9b, 0x26, 0x5a, 0x05, 0xa9, 0xe3, 0x1c, 0x63, 0x2a, 0x5f, 0x7e, 0xed, 0x72, 0x22, 0x7c,
+	0xc7, 0x39, 0xc6, 0xf5, 0x19, 0x95, 0x02, 0xd1, 0x7d, 0xc8, 0xb8, 0x98, 0x92, 0x48, 0x94, 0xe4,
+	0xad, 0x44, 0x12, 0x95, 0x42, 0xea, 0x33, 0x6a, 0x00, 0x26, 0x7c, 0xb0, 0x69, 0x85, 0xe1, 0x90,
+	0xcc, 0x47, 0x31, 0x2d, 0xa2, 0x05, 0x05, 0x12, 0x3e, 0x1e, 0x6e, 0x63, 0xc3, 0x2f, 0x66, 0xc6,
+	0xf0, 0x69, 0x52, 0x08, 0xe1, 0xc3, 0xc0, 0xe8, 0x1b, 0x20, 0xbb, 0x96, 0x71, 0xa8, 0x51, 0x66,
+	0x59, 0x4a, 0x79, 0x35, 0x59, 0x42, 0xcb, 0x38, 0x0c, 0x18, 0xe6, 0xdc, 0xe0, 0x37, 0x5a, 0x83,
+	0xb4, 0xe7, 0xf7, 0xdb, 0xb8, 0x98, 0xa3, 0x94, 0xa5, 0x64, 0x9e, 0x04, 0x51, 0x9f, 0x51, 0x19,
+	0x14, 0x3d, 0x84, 0x9c, 0x65, 0x1b, 0x2e, 0xd6, 0x3d, 0x5c, 0x94, 0xc7, 0x30, 0xdc, 0x0a, 0x40,
+	0x84, 0x61, 0x48, 0x50, 0xfa, 0x95, 0x00, 0xa9, 0x26, 0xf6, 0xc9, 0xd1, 0xe9, 0xea, 0x2e, 0x89,
+	0x35, 0xb2, 0xe0, 0x63, 0x53, 0xd3, 0x43, 0x87, 0x8f, 0x3a, 0x3a, 0x0c, 0x5f, 0x63, 0xf0, 0xaa,
+	0x8f, 0x0a, 0x90, 0x22, 0x79, 0x81, 0x9d, 0x03, 0xf2, 0x93, 0x68, 0x73, 0xac, 0xb7, 0x7b, 0xa1,
+	0x73, 0xaf, 0x70, 0x1b, 0x3d, 0x6a, 0xee, 0x36, 0x94, 0x36, 0x26, 0x99, 0xa3, 0x69, 0x75, 0xba,
+	0x6d, 0xac, 0x32, 0x28, 0x7a, 0x00, 0x79, 0xfc, 0x02, 0x1b, 0xbd, 0x40, 0x04, 0x69, 0x9c, 0x08,
+	0x10, 0x22, 0xab, 0x7e, 0xe9, 0x5f, 0x02, 0xa4, 0xaa, 0xa6, 0x79, 0x1a, 0x8a, 0xbc, 0x07, 0x73,
+	0x5d, 0x17, 0x1f, 0xf3, 0x1b, 0x88, 0xe3, 0x36, 0x38, 0x47, 0xd0, 0x27, 0xe4, 0xff, 0x4f, 0xad,
+	0xff, 0x23, 0x80, 0x44, 0x4e, 0xc7, 0x19, 0x50, 0xfb, 0x1e, 0x00, 0x47, 0x99, 0x1a, 0x47, 0x29,
+	0x1b, 0x11, 0xd5, 0xb4, 0x8a, 0x7f, 0x2a, 0x40, 0x86, 0x9d, 0xf1, 0xd3, 0x50, 0x7d, 0x50, 0x76,
+	0x71, 0x3a, 0xd9, 0x53, 0x93, 0xca, 0xfe, 0xf3, 0x14, 0x48, 0xf4, 0xb4, 0x9f, 0x82, 0xe4, 0xb7,
+	0x40, 0x7a, 0xe6, 0x3a, 0x9d, 0x40, 0xe6, 0x45, 0x9e, 0x0a, 0xbf, 0xf0, 0x1b, 0x8e, 0x89, 0xf7,
+	0x1c, 0x4f, 0xa5, 0x18, 0x74, 0x13, 0x44, 0xdf, 0x09, 0xc4, 0x1c, 0x85, 0x14, 0x7d, 0x07, 0x1d,
+	0xc2, 0xa5, 0x13, 0x79, 0xb4, 0x8e, 0xde, 0xd5, 0x0e, 0xfa, 0x1a, 0xbd, 0x19, 0x82, 0x3b, 0x78,
+	0x6d, 0x64, 0xf6, 0xac, 0x44, 0x92, 0xed, 0xe8, 0xdd, 0xf5, 0x7e, 0x95, 0x10, 0x29, 0xb6, 0xef,
+	0xf6, 0xd5, 0x79, 0x63, 0x78, 0x85, 0x5c, 0x9f, 0x86, 0x63, 0xfb, 0xd8, 0x66, 0x79, 0x59, 0x56,
+	0xc3, 0x61, 0xdc, 0xb6, 0x99, 0x49, 0x6d, 0xfb, 0x1d, 0x28, 0x8e, 0x12, 0x21, 0x4c, 0x50, 0xc2,
+	0x49, 0x82, 0xba, 0x1d, 0x1e, 0xd5, 0xb1, 0x2e, 0x67, 0x98, 0x77, 0xc5, 0xaf, 0x09, 0xa5, 0xcf,
+	0x04, 0xc8, 0xb0, 0x94, 0x7f, 0x56, 0x9d, 0x37, 0xed, 0x81, 0xfa, 0x8d, 0x04, 0xb9, 0xf0, 0x4a,
+	0x3a, 0xab, 0xba, 0xb5, 0x5f, 0x15, 0x98, 0x0f, 0xc6, 0xde, 0xb4, 0xa7, 0x16, 0x9c, 0x3b, 0x00,
+	0xba, 0xef, 0xbb, 0xd6, 0x41, 0xcf, 0xc7, 0x5e, 0x31, 0x43, 0x59, 0xbf, 0x33, 0x9e, 0x75, 0x35,
+	0xc2, 0x33, 0x8e, 0xdc, 0x06, 0x71, 0x97, 0x65, 0xcf, 0x48, 0xac, 0xbf, 0x07, 0x73, 0x31, 0xa9,
+	0x13, 0x76, 0x5d, 0xe0, 0x77, 0x95, 0x79, 0xf2, 0x3f, 0x8b, 0x90, 0xa6, 0x95, 0xca, 0x59, 0x8d,
+	0xa6, 0x47, 0x03, 0x5e, 0x64, 0x01, 0x74, 0x6b, 0x74, 0xc1, 0xf5, 0x3a, 0x2e, 0x4c, 0x4f, 0xea,
+	0xc2, 0xff, 0xd1, 0xc6, 0x9f, 0x0a, 0x90, 0x0b, 0xcb, 0xba, 0xd3, 0x30, 0xf3, 0xda, 0x60, 0x8c,
+	0x4c, 0x53, 0xba, 0x4c, 0x7a, 0x0b, 0xae, 0x67, 0x40, 0x3a, 0x70, 0xcc, 0x7e, 0xf9, 0x1f, 0x02,
+	0x5c, 0x18, 0xda, 0x3c, 0x76, 0x23, 0x0b, 0x13, 0xde, 0xc8, 0x77, 0x20, 0x47, 0x4a, 0x82, 0x57,
+	0xdf, 0xe2, 0x59, 0x0a, 0x63, 0x37, 0x3f, 0x7b, 0x20, 0x4c, 0x50, 0xb5, 0x04, 0xc0, 0xaa, 0x8f,
+	0x56, 0x40, 0xf2, 0xfb, 0x5d, 0xf6, 0x02, 0x39, 0x3f, 0xf0, 0xac, 0x7b, 0x4c, 0x6c, 0xd2, 0xea,
+	0x77, 0xb1, 0x4a, 0x11, 0x27, 0xbe, 0x4b, 0xd3, 0x07, 0x16, 0x1b, 0x94, 0x7f, 0x79, 0x0e, 0xf2,
+	0x9c, 0xce, 0x68, 0x03, 0xf2, 0x1f, 0x79, 0x8e, 0xad, 0x39, 0x07, 0x1f, 0x91, 0x07, 0x07, 0x53,
+	0xf7, 0x7a, 0xb2, 0xf5, 0xe9, 0xef, 0x5d, 0x0a, 0xac, 0xcf, 0xa8, 0x40, 0xe8, 0xd8, 0x08, 0x55,
+	0x81, 0x8e, 0x34, 0xdd, 0x75, 0xf5, 0x7e, 0xa0, 0xff, 0xf2, 0x98, 0x4d, 0xaa, 0x04, 0x57, 0x9f,
+	0x51, 0x65, 0x42, 0x45, 0x07, 0xe8, 0x5b, 0x20, 0x77, 0x5d, 0xab, 0x63, 0xf9, 0x56, 0xf4, 0x24,
+	0x1b, 0xb5, 0xc3, 0x5e, 0x88, 0x23, 0x3b, 0x44, 0x44, 0xe8, 0x2e, 0x48, 0x3e, 0x7e, 0xe1, 0x27,
+	0x3c, 0xce, 0x78, 0x62, 0x72, 0x16, 0xc9, 0x4b, 0x8b, 0x40, 0xd1, 0x37, 0x83, 0x27, 0x13, 0xa5,
+	0x63, 0x47, 0xe7, 0xda, 0x08, 0x3a, 0x92, 0x4f, 0x03, 0x5a, 0xfa, 0x68, 0x22, 0xbf, 0xd1, 0xbb,
+	0x24, 0x51, 0xf7, 0x6c, 0x1f, 0xbb, 0x41, 0x9d, 0xb0, 0x34, 0x82, 0xba, 0xc6, 0x50, 0xf5, 0x19,
+	0x35, 0x24, 0x28, 0xfd, 0x41, 0x00, 0x38, 0x31, 0x28, 0x5a, 0x81, 0xb4, 0xed, 0x98, 0xd8, 0x2b,
+	0x0a, 0x34, 0x1d, 0x20, 0x6e, 0x23, 0xb5, 0xde, 0x22, 0xd9, 0x43, 0x65, 0x80, 0x29, 0x4b, 0x46,
+	0x3e, 0x40, 0x53, 0x53, 0x04, 0xa8, 0x34, 0x59, 0x80, 0x96, 0x7e, 0x2f, 0x80, 0x1c, 0xb9, 0x78,
+	0xac, 0x56, 0x9b, 0xd5, 0x37, 0x47, 0xab, 0xbf, 0x0b, 0x20, 0x47, 0x61, 0x17, 0x1d, 0x42, 0x61,
+	0xf2, 0x43, 0x28, 0x72, 0x87, 0x70, 0xca, 0x07, 0x0b, 0xaf, 0xab, 0x34, 0x85, 0xae, 0xe9, 0x09,
+	0x75, 0xfd, 0xad, 0x00, 0x12, 0x8d, 0xee, 0x2f, 0x0d, 0x3a, 0x6f, 0x3e, 0xe1, 0x46, 0x7b, 0x33,
+	0xbc, 0xf7, 0x99, 0xc0, 0x2a, 0x4c, 0xaa, 0xd5, 0x3b, 0x83, 0x5a, 0x5d, 0xe2, 0x43, 0x32, 0xc0,
+	0xbc, 0x39, 0x9a, 0xfd, 0x55, 0x80, 0x6c, 0x90, 0x5b, 0x3e, 0xdf, 0x51, 0x19, 0x5d, 0xda, 0x3b,
+	0x90, 0x0d, 0xf2, 0x61, 0x42, 0xbd, 0x72, 0x07, 0xb2, 0x98, 0x65, 0xdc, 0x84, 0x7a, 0x8d, 0xcb,
+	0xc7, 0x6a, 0x08, 0x2b, 0x1b, 0x90, 0x0d, 0x12, 0x11, 0xba, 0x09, 0x92, 0x4d, 0xee, 0x01, 0x76,
+	0x07, 0x26, 0xa5, 0x2a, 0xba, 0x3e, 0x05, 0x93, 0x9f, 0x09, 0x90, 0x0b, 0xe3, 0x0a, 0x7d, 0x91,
+	0xfb, 0xba, 0x7b, 0x31, 0xe1, 0x48, 0x05, 0xdf, 0x77, 0x13, 0x4b, 0xaf, 0x29, 0x8b, 0x86, 0xfb,
+	0x90, 0xb7, 0x6c, 0x4f, 0xa3, 0xdf, 0x58, 0x82, 0x2f, 0xae, 0x23, 0x79, 0xcb, 0x96, 0xed, 0xed,
+	0xb9, 0xf8, 0x78, 0xcb, 0x2c, 0x77, 0xa1, 0xc0, 0x9f, 0x08, 0x52, 0x2e, 0x4e, 0x5a, 0x23, 0x12,
+	0x41, 0x7b, 0x5d, 0x73, 0xb2, 0x60, 0x0a, 0x80, 0x55, 0xbf, 0xfc, 0x47, 0x11, 0x66, 0x79, 0x96,
+	0x93, 0x1a, 0x6b, 0x73, 0xa0, 0xa0, 0x16, 0xe9, 0xc1, 0x7e, 0x7b, 0xc4, 0xc1, 0x1e, 0x5b, 0x4d,
+	0x2f, 0xf0, 0x5f, 0xd0, 0x46, 0x58, 0x5d, 0x9a, 0xce, 0xea, 0xe9, 0xc9, 0xac, 0x5e, 0x7a, 0x3a,
+	0x49, 0x61, 0x7e, 0x77, 0xb0, 0x5c, 0x7e, 0x6b, 0x84, 0xae, 0x64, 0x23, 0xae, 0x6a, 0x2f, 0x3f,
+	0x05, 0x38, 0x61, 0x3a, 0x65, 0xa5, 0xbb, 0x08, 0x19, 0xe7, 0xd9, 0x33, 0x0f, 0xb3, 0xe8, 0x4f,
+	0xab, 0xc1, 0xa8, 0xdc, 0x01, 0x69, 0xdf, 0xc3, 0x2e, 0x3a, 0x1f, 0xb9, 0x4c, 0xa6, 0xbe, 0x29,
+	0x41, 0xae, 0xe7, 0x61, 0xd7, 0xd6, 0x3b, 0x61, 0x88, 0x44, 0x63, 0xf4, 0xf5, 0x84, 0x94, 0x53,
+	0xaa, 0xb0, 0xee, 0x50, 0x25, 0xec, 0x0e, 0x51, 0x39, 0x68, 0xfb, 0x88, 0x13, 0xa3, 0xfc, 0x0b,
+	0x11, 0xb2, 0x7b, 0xae, 0x43, 0x6b, 0xa7, 0x38, 0x4b, 0x04, 0x12, 0xc7, 0x8e, 0xfe, 0x46, 0x57,
+	0x01, 0xba, 0xbd, 0x83, 0xb6, 0x65, 0xd0, 0x16, 0x12, 0x73, 0xaf, 0xcc, 0x66, 0x3e, 0xc0, 0x7d,
+	0xb2, 0xec, 0x61, 0xc3, 0xc5, 0xac, 0xc3, 0x24, 0xb1, 0x65, 0x36, 0x43, 0x96, 0x57, 0xa0, 0xa0,
+	0xf7, 0xfc, 0x43, 0xed, 0x13, 0x7c, 0x70, 0xe8, 0x38, 0x47, 0x5a, 0xcf, 0x6d, 0x07, 0x4f, 0xf3,
+	0xf3, 0x64, 0xfe, 0x43, 0x36, 0xbd, 0xef, 0xb6, 0xd1, 0x1d, 0x58, 0x18, 0x40, 0x76, 0xb0, 0x7f,
+	0xe8, 0x98, 0xec, 0xad, 0x2e, 0xab, 0x88, 0x43, 0xef, 0xb0, 0x95, 0x98, 0x11, 0xb2, 0xaf, 0x61,
+	0x04, 0x42, 0xca, 0x9d, 0xb2, 0xdc, 0xab, 0x49, 0x4f, 0x8e, 0xda, 0x4f, 0x45, 0x58, 0xdc, 0x27,
+	0x23, 0xfd, 0xa0, 0x8d, 0x03, 0x43, 0xbe, 0x6f, 0xe1, 0xb6, 0xe9, 0xa1, 0x3b, 0x81, 0xf9, 0x84,
+	0xe0, 0x29, 0x16, 0xdf, 0xaf, 0xe9, 0xbb, 0x96, 0xfd, 0x9c, 0x5e, 0x2a, 0x81, 0x71, 0xdf, 0x4f,
+	0x30, 0x8f, 0x38, 0x01, 0x75, 0xdc, 0x78, 0xcf, 0x46, 0x18, 0x8f, 0x45, 0xc6, 0x3d, 0x2e, 0x36,
+	0x93, 0x45, 0xaf, 0x54, 0x87, 0xcc, 0x9b, 0x64, 0xf2, 0x52, 0x05, 0xd0, 0x30, 0x92, 0xb5, 0xd4,
+	0x18, 0x43, 0x81, 0x7a, 0x2b, 0x1c, 0x96, 0xbf, 0x27, 0xc2, 0xdc, 0x46, 0xd0, 0x6e, 0x6c, 0xf6,
+	0x3a, 0x1d, 0xdd, 0xed, 0x0f, 0x05, 0xdd, 0x70, 0x13, 0x22, 0xde, 0x5d, 0x94, 0xb9, 0xee, 0xe2,
+	0xa0, 0xd3, 0xa5, 0xd7, 0x71, 0xfa, 0x43, 0xc8, 0xeb, 0x86, 0x81, 0x3d, 0x8f, 0xbf, 0x40, 0xc7,
+	0xd1, 0x42, 0x08, 0x1f, 0x8a, 0x98, 0xcc, 0xeb, 0x44, 0xcc, 0x0f, 0x05, 0xc8, 0xed, 0xb9, 0xd8,
+	0xc3, 0xb6, 0x41, 0x4b, 0x08, 0xa3, 0xed, 0x18, 0x47, 0xd4, 0x00, 0x69, 0x95, 0x0d, 0xc8, 0x13,
+	0x8c, 0xb8, 0x25, 0xc8, 0xc0, 0x7c, 0x33, 0x28, 0x24, 0xac, 0x6c, 0xe8, 0xbe, 0xce, 0xf2, 0x2e,
+	0x85, 0x96, 0xbe, 0x0a, 0x72, 0x34, 0xf5, 0x3a, 0x5f, 0x20, 0xca, 0x5b, 0x90, 0xa9, 0xd1, 0x8e,
+	0x24, 0xe7, 0x89, 0x59, 0xea, 0x89, 0x55, 0xc8, 0x75, 0x03, 0x76, 0x41, 0x14, 0xce, 0x27, 0x48,
+	0xa2, 0x46, 0xa0, 0xf2, 0x03, 0xc8, 0xb2, 0xad, 0x3c, 0xda, 0xf5, 0x65, 0x3f, 0x83, 0xfa, 0x70,
+	0xa0, 0xeb, 0x4b, 0x57, 0xd4, 0x10, 0x51, 0x6e, 0x00, 0x9c, 0x34, 0x96, 0x63, 0x5d, 0x51, 0x21,
+	0xa9, 0x2b, 0x3a, 0xd8, 0x57, 0x15, 0x63, 0x7d, 0xd5, 0xf2, 0xf7, 0x05, 0xc8, 0x73, 0xdf, 0x8a,
+	0x4e, 0x37, 0x41, 0xa3, 0xb7, 0x61, 0xce, 0xc5, 0x6d, 0x9d, 0xbc, 0x60, 0xb4, 0x00, 0x90, 0xa2,
+	0x80, 0xf3, 0xe1, 0xf4, 0x2e, 0xcb, 0xe4, 0x06, 0xc0, 0xc9, 0xce, 0x7c, 0x27, 0x57, 0x18, 0xee,
+	0xe4, 0x5e, 0x01, 0xd9, 0xc4, 0x6d, 0xf2, 0x30, 0xc2, 0x6e, 0xa8, 0x50, 0x34, 0x31, 0xd0, 0xe7,
+	0x4d, 0x0d, 0xf6, 0x79, 0x7f, 0x24, 0x40, 0x6e, 0xc3, 0x31, 0x94, 0x63, 0xe2, 0xc1, 0xdb, 0x03,
+	0xa5, 0x2b, 0x5f, 0x92, 0x87, 0x10, 0xae, 0x7a, 0x5d, 0x05, 0x96, 0xb7, 0xbd, 0xc3, 0x80, 0x65,
+	0xa2, 0x93, 0x4e, 0x30, 0xe8, 0x06, 0x9c, 0xe3, 0xff, 0x3f, 0xc0, 0x7a, 0xe2, 0xb2, 0x3a, 0xcb,
+	0xfd, 0x81, 0xc0, 0xbb, 0xf5, 0x6f, 0x11, 0xe4, 0xa8, 0x4e, 0x46, 0xf3, 0x30, 0xf7, 0xb8, 0xba,
+	0xbd, 0xaf, 0x68, 0xad, 0x27, 0x7b, 0x8a, 0xd6, 0xd8, 0xdf, 0xde, 0x2e, 0xcc, 0xa0, 0x45, 0x40,
+	0xdc, 0xe4, 0xfa, 0xee, 0xee, 0xb6, 0x52, 0x6d, 0x14, 0x84, 0xd8, 0xfc, 0x56, 0xa3, 0xa5, 0x6c,
+	0x2a, 0x6a, 0x41, 0x8c, 0x6d, 0xb2, 0xbd, 0xdb, 0xd8, 0x2c, 0xa4, 0xd0, 0x45, 0xb8, 0xc0, 0x4d,
+	0x6e, 0xec, 0xee, 0xaf, 0x6f, 0x2b, 0x05, 0x29, 0x36, 0xdd, 0x6c, 0xa9, 0x5b, 0x8d, 0xcd, 0x42,
+	0x1a, 0x2d, 0x40, 0x81, 0x67, 0xf9, 0xa4, 0xa5, 0x34, 0x0b, 0x99, 0xd8, 0xc6, 0x1b, 0xd5, 0x96,
+	0x52, 0xc8, 0xa2, 0x12, 0x2c, 0x72, 0x93, 0xa4, 0x0e, 0xd5, 0x76, 0xd7, 0x1f, 0x29, 0xb5, 0x56,
+	0x21, 0x87, 0x2e, 0xc3, 0xc5, 0xf8, 0x5a, 0x55, 0x55, 0xab, 0x4f, 0x0a, 0x72, 0x6c, 0xaf, 0x96,
+	0xf2, 0xed, 0x56, 0x01, 0x50, 0x11, 0x16, 0xb8, 0x49, 0x75, 0xab, 0x56, 0x67, 0x2b, 0xf9, 0x18,
+	0x97, 0x40, 0x57, 0xad, 0xd6, 0x68, 0x15, 0x66, 0xd1, 0x25, 0x98, 0x8f, 0xe9, 0x4b, 0x17, 0xce,
+	0xc5, 0xd8, 0x33, 0x9d, 0xe9, 0xd2, 0xf9, 0x5b, 0x3f, 0x11, 0x60, 0x96, 0xf7, 0x31, 0xfa, 0x02,
+	0x2c, 0x6f, 0xec, 0xd6, 0x34, 0xe5, 0xb1, 0xd2, 0x68, 0x85, 0xf8, 0xda, 0xfe, 0x8e, 0xd2, 0x68,
+	0x35, 0xb5, 0x5a, 0xbd, 0xda, 0xd8, 0x54, 0x36, 0x0a, 0x33, 0x63, 0x51, 0x1f, 0x56, 0x5b, 0xb5,
+	0xba, 0xb2, 0x51, 0x10, 0xd0, 0x4d, 0x28, 0x8f, 0x44, 0xed, 0x37, 0x42, 0x9c, 0x88, 0x6e, 0xc0,
+	0xb5, 0x18, 0x6e, 0x4f, 0x55, 0x9a, 0x4a, 0xa3, 0xa6, 0x44, 0x2c, 0x53, 0xeb, 0x8b, 0xbf, 0x7e,
+	0xb9, 0x24, 0xfc, 0xee, 0xe5, 0x92, 0xf0, 0xa7, 0x97, 0x4b, 0xc2, 0x8f, 0xff, 0xb2, 0x34, 0xf3,
+	0x54, 0xaa, 0x3c, 0x3c, 0xbe, 0x7b, 0x90, 0xa1, 0x59, 0xf3, 0x2b, 0xff, 0x0d, 0x00, 0x00, 0xff,
+	0xff, 0xa9, 0x6a, 0x79, 0x2a, 0x1c, 0x23, 0x00, 0x00,
 }
 
 func (m *ChangePack) Marshal() (dAtA []byte, err error) {
diff --git a/api/resources.proto b/api/yorkie/v1/resources.proto
similarity index 91%
rename from api/resources.proto
rename to api/yorkie/v1/resources.proto
index 0e4084e6..9f9ad153 100644
--- a/api/resources.proto
+++ b/api/yorkie/v1/resources.proto
@@ -15,10 +15,12 @@
  */
 syntax = "proto3";
 
+package yorkie.v1;
+
 import "google/protobuf/timestamp.proto";
 import "google/protobuf/wrappers.proto";
 
-package api;
+option go_package = ".;v1";
 
 /////////////////////////////////////////
 // Messages for ChangePack             //
@@ -170,7 +172,7 @@ message JSONElement {
     TimeTicket removed_at = 5;
   }
 
-  oneof Body {
+  oneof body {
     JSONObject json_object = 1;
     JSONArray json_array = 2;
     Primitive primitive = 3;
@@ -288,28 +290,28 @@ message TimeTicket {
 }
 
 enum ValueType {
-  NULL = 0;
-  BOOLEAN = 1;
-  INTEGER = 2;
-  LONG = 3;
-  DOUBLE = 4;
-  STRING = 5;
-  BYTES = 6;
-  DATE = 7;
-  JSON_OBJECT = 8;
-  JSON_ARRAY = 9;
-  TEXT = 10;
-  RICH_TEXT = 11;
-  INTEGER_CNT = 12;
-  LONG_CNT = 13;
-  DOUBLE_CNT = 14;
+  VALUE_TYPE_NULL = 0;
+  VALUE_TYPE_BOOLEAN = 1;
+  VALUE_TYPE_INTEGER = 2;
+  VALUE_TYPE_LONG = 3;
+  VALUE_TYPE_DOUBLE = 4;
+  VALUE_TYPE_STRING = 5;
+  VALUE_TYPE_BYTES = 6;
+  VALUE_TYPE_DATE = 7;
+  VALUE_TYPE_JSON_OBJECT = 8;
+  VALUE_TYPE_JSON_ARRAY = 9;
+  VALUE_TYPE_TEXT = 10;
+  VALUE_TYPE_RICH_TEXT = 11;
+  VALUE_TYPE_INTEGER_CNT = 12;
+  VALUE_TYPE_LONG_CNT = 13;
+  VALUE_TYPE_DOUBLE_CNT = 14;
 }
 
 enum DocEventType {
-  DOCUMENTS_CHANGED = 0;
-  DOCUMENTS_WATCHED = 1;
-  DOCUMENTS_UNWATCHED = 2;
-  PRESENCE_CHANGED = 3;
+  DOC_EVENT_TYPE_DOCUMENTS_CHANGED = 0;
+  DOC_EVENT_TYPE_DOCUMENTS_WATCHED = 1;
+  DOC_EVENT_TYPE_DOCUMENTS_UNWATCHED = 2;
+  DOC_EVENT_TYPE_PRESENCE_CHANGED = 3;
 }
 
 message DocEvent {
diff --git a/api/yorkie.pb.go b/api/yorkie/v1/yorkie.pb.go
similarity index 87%
rename from api/yorkie.pb.go
rename to api/yorkie/v1/yorkie.pb.go
index 2d118338..4cf6dbfc 100644
--- a/api/yorkie.pb.go
+++ b/api/yorkie/v1/yorkie.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-gogo. DO NOT EDIT.
-// source: yorkie.proto
+// source: yorkie/v1/yorkie.proto
 
-package api
+package v1
 
 import (
 	context "context"
@@ -37,7 +37,7 @@ func (m *ActivateClientRequest) Reset()         { *m = ActivateClientRequest{} }
 func (m *ActivateClientRequest) String() string { return proto.CompactTextString(m) }
 func (*ActivateClientRequest) ProtoMessage()    {}
 func (*ActivateClientRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b60f170c5b305914, []int{0}
+	return fileDescriptor_40070c858814ab24, []int{0}
 }
 func (m *ActivateClientRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -85,7 +85,7 @@ func (m *ActivateClientResponse) Reset()         { *m = ActivateClientResponse{}
 func (m *ActivateClientResponse) String() string { return proto.CompactTextString(m) }
 func (*ActivateClientResponse) ProtoMessage()    {}
 func (*ActivateClientResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b60f170c5b305914, []int{1}
+	return fileDescriptor_40070c858814ab24, []int{1}
 }
 func (m *ActivateClientResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -139,7 +139,7 @@ func (m *DeactivateClientRequest) Reset()         { *m = DeactivateClientRequest
 func (m *DeactivateClientRequest) String() string { return proto.CompactTextString(m) }
 func (*DeactivateClientRequest) ProtoMessage()    {}
 func (*DeactivateClientRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b60f170c5b305914, []int{2}
+	return fileDescriptor_40070c858814ab24, []int{2}
 }
 func (m *DeactivateClientRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -186,7 +186,7 @@ func (m *DeactivateClientResponse) Reset()         { *m = DeactivateClientRespon
 func (m *DeactivateClientResponse) String() string { return proto.CompactTextString(m) }
 func (*DeactivateClientResponse) ProtoMessage()    {}
 func (*DeactivateClientResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b60f170c5b305914, []int{3}
+	return fileDescriptor_40070c858814ab24, []int{3}
 }
 func (m *DeactivateClientResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -234,7 +234,7 @@ func (m *AttachDocumentRequest) Reset()         { *m = AttachDocumentRequest{} }
 func (m *AttachDocumentRequest) String() string { return proto.CompactTextString(m) }
 func (*AttachDocumentRequest) ProtoMessage()    {}
 func (*AttachDocumentRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b60f170c5b305914, []int{4}
+	return fileDescriptor_40070c858814ab24, []int{4}
 }
 func (m *AttachDocumentRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -289,7 +289,7 @@ func (m *AttachDocumentResponse) Reset()         { *m = AttachDocumentResponse{}
 func (m *AttachDocumentResponse) String() string { return proto.CompactTextString(m) }
 func (*AttachDocumentResponse) ProtoMessage()    {}
 func (*AttachDocumentResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b60f170c5b305914, []int{5}
+	return fileDescriptor_40070c858814ab24, []int{5}
 }
 func (m *AttachDocumentResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -344,7 +344,7 @@ func (m *DetachDocumentRequest) Reset()         { *m = DetachDocumentRequest{} }
 func (m *DetachDocumentRequest) String() string { return proto.CompactTextString(m) }
 func (*DetachDocumentRequest) ProtoMessage()    {}
 func (*DetachDocumentRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b60f170c5b305914, []int{6}
+	return fileDescriptor_40070c858814ab24, []int{6}
 }
 func (m *DetachDocumentRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -399,7 +399,7 @@ func (m *DetachDocumentResponse) Reset()         { *m = DetachDocumentResponse{}
 func (m *DetachDocumentResponse) String() string { return proto.CompactTextString(m) }
 func (*DetachDocumentResponse) ProtoMessage()    {}
 func (*DetachDocumentResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b60f170c5b305914, []int{7}
+	return fileDescriptor_40070c858814ab24, []int{7}
 }
 func (m *DetachDocumentResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -454,7 +454,7 @@ func (m *WatchDocumentsRequest) Reset()         { *m = WatchDocumentsRequest{} }
 func (m *WatchDocumentsRequest) String() string { return proto.CompactTextString(m) }
 func (*WatchDocumentsRequest) ProtoMessage()    {}
 func (*WatchDocumentsRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b60f170c5b305914, []int{8}
+	return fileDescriptor_40070c858814ab24, []int{8}
 }
 func (m *WatchDocumentsRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -511,7 +511,7 @@ func (m *WatchDocumentsResponse) Reset()         { *m = WatchDocumentsResponse{}
 func (m *WatchDocumentsResponse) String() string { return proto.CompactTextString(m) }
 func (*WatchDocumentsResponse) ProtoMessage()    {}
 func (*WatchDocumentsResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b60f170c5b305914, []int{9}
+	return fileDescriptor_40070c858814ab24, []int{9}
 }
 func (m *WatchDocumentsResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -596,7 +596,7 @@ func (m *WatchDocumentsResponse_Initialization) Reset()         { *m = WatchDocu
 func (m *WatchDocumentsResponse_Initialization) String() string { return proto.CompactTextString(m) }
 func (*WatchDocumentsResponse_Initialization) ProtoMessage()    {}
 func (*WatchDocumentsResponse_Initialization) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b60f170c5b305914, []int{9, 0}
+	return fileDescriptor_40070c858814ab24, []int{9, 0}
 }
 func (m *WatchDocumentsResponse_Initialization) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -644,7 +644,7 @@ func (m *PushPullRequest) Reset()         { *m = PushPullRequest{} }
 func (m *PushPullRequest) String() string { return proto.CompactTextString(m) }
 func (*PushPullRequest) ProtoMessage()    {}
 func (*PushPullRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b60f170c5b305914, []int{10}
+	return fileDescriptor_40070c858814ab24, []int{10}
 }
 func (m *PushPullRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -699,7 +699,7 @@ func (m *PushPullResponse) Reset()         { *m = PushPullResponse{} }
 func (m *PushPullResponse) String() string { return proto.CompactTextString(m) }
 func (*PushPullResponse) ProtoMessage()    {}
 func (*PushPullResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b60f170c5b305914, []int{11}
+	return fileDescriptor_40070c858814ab24, []int{11}
 }
 func (m *PushPullResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -754,7 +754,7 @@ func (m *UpdatePresenceRequest) Reset()         { *m = UpdatePresenceRequest{} }
 func (m *UpdatePresenceRequest) String() string { return proto.CompactTextString(m) }
 func (*UpdatePresenceRequest) ProtoMessage()    {}
 func (*UpdatePresenceRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b60f170c5b305914, []int{12}
+	return fileDescriptor_40070c858814ab24, []int{12}
 }
 func (m *UpdatePresenceRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -807,7 +807,7 @@ func (m *UpdatePresenceResponse) Reset()         { *m = UpdatePresenceResponse{}
 func (m *UpdatePresenceResponse) String() string { return proto.CompactTextString(m) }
 func (*UpdatePresenceResponse) ProtoMessage()    {}
 func (*UpdatePresenceResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b60f170c5b305914, []int{13}
+	return fileDescriptor_40070c858814ab24, []int{13}
 }
 func (m *UpdatePresenceResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -837,68 +837,70 @@ func (m *UpdatePresenceResponse) XXX_DiscardUnknown() {
 var xxx_messageInfo_UpdatePresenceResponse proto.InternalMessageInfo
 
 func init() {
-	proto.RegisterType((*ActivateClientRequest)(nil), "api.ActivateClientRequest")
-	proto.RegisterType((*ActivateClientResponse)(nil), "api.ActivateClientResponse")
-	proto.RegisterType((*DeactivateClientRequest)(nil), "api.DeactivateClientRequest")
-	proto.RegisterType((*DeactivateClientResponse)(nil), "api.DeactivateClientResponse")
-	proto.RegisterType((*AttachDocumentRequest)(nil), "api.AttachDocumentRequest")
-	proto.RegisterType((*AttachDocumentResponse)(nil), "api.AttachDocumentResponse")
-	proto.RegisterType((*DetachDocumentRequest)(nil), "api.DetachDocumentRequest")
-	proto.RegisterType((*DetachDocumentResponse)(nil), "api.DetachDocumentResponse")
-	proto.RegisterType((*WatchDocumentsRequest)(nil), "api.WatchDocumentsRequest")
-	proto.RegisterType((*WatchDocumentsResponse)(nil), "api.WatchDocumentsResponse")
-	proto.RegisterType((*WatchDocumentsResponse_Initialization)(nil), "api.WatchDocumentsResponse.Initialization")
-	proto.RegisterMapType((map[string]*Clients)(nil), "api.WatchDocumentsResponse.Initialization.PeersMapByDocEntry")
-	proto.RegisterType((*PushPullRequest)(nil), "api.PushPullRequest")
-	proto.RegisterType((*PushPullResponse)(nil), "api.PushPullResponse")
-	proto.RegisterType((*UpdatePresenceRequest)(nil), "api.UpdatePresenceRequest")
-	proto.RegisterType((*UpdatePresenceResponse)(nil), "api.UpdatePresenceResponse")
-}
-
-func init() { proto.RegisterFile("yorkie.proto", fileDescriptor_b60f170c5b305914) }
-
-var fileDescriptor_b60f170c5b305914 = []byte{
-	// 639 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xdd, 0x6e, 0xd3, 0x30,
-	0x18, 0x6d, 0xda, 0xad, 0xda, 0xbe, 0x76, 0x5d, 0x65, 0xd1, 0x52, 0x65, 0xac, 0xaa, 0x32, 0x21,
-	0x55, 0x5c, 0x54, 0x53, 0x91, 0xc6, 0x8f, 0xc4, 0xc5, 0xb6, 0x22, 0x6d, 0xaa, 0x86, 0x4a, 0x34,
-	0x84, 0xb8, 0x0a, 0x9e, 0xe3, 0x6d, 0x56, 0xbb, 0x24, 0xc4, 0xce, 0xa4, 0xf0, 0x24, 0xf0, 0x46,
-	0xbb, 0xe4, 0x11, 0xd0, 0xb8, 0xe1, 0x31, 0x50, 0x62, 0x67, 0x5b, 0x32, 0x03, 0x05, 0x31, 0xee,
-	0xd2, 0xe3, 0x9c, 0x73, 0xbe, 0x53, 0xdb, 0x27, 0x50, 0x8f, 0xfd, 0x70, 0xca, 0xe8, 0x20, 0x08,
-	0x7d, 0xe1, 0xa3, 0x0a, 0x0e, 0x98, 0xb9, 0x1a, 0x52, 0xee, 0x47, 0x21, 0xa1, 0x5c, 0xa2, 0xd6,
-	0x16, 0xb4, 0xb6, 0x89, 0x60, 0xe7, 0x58, 0xd0, 0xdd, 0x19, 0xa3, 0x9e, 0xb0, 0xe9, 0x87, 0x88,
-	0x72, 0x81, 0xd6, 0x01, 0x48, 0x0a, 0x38, 0x53, 0x1a, 0x77, 0x8c, 0x9e, 0xd1, 0x5f, 0xb6, 0x97,
-	0x25, 0x32, 0xa6, 0xb1, 0x75, 0x08, 0xed, 0x22, 0x8f, 0x07, 0xbe, 0xc7, 0xe9, 0x6f, 0x88, 0x68,
-	0x0d, 0xd4, 0x0f, 0x87, 0xb9, 0x9d, 0x72, 0xcf, 0xe8, 0xd7, 0xed, 0x25, 0x09, 0xec, 0xbb, 0xd6,
-	0x16, 0xdc, 0x1f, 0x51, 0xac, 0x9d, 0x27, 0xc7, 0x33, 0x0a, 0xbc, 0x27, 0xd0, 0xb9, 0xcd, 0x53,
-	0xf3, 0xfc, 0x92, 0x78, 0x0c, 0xad, 0x6d, 0x21, 0x30, 0x39, 0x1d, 0xf9, 0x24, 0x3a, 0x9b, 0xd3,
-	0x0e, 0x6d, 0x42, 0x8d, 0x9c, 0x62, 0xef, 0x84, 0x3a, 0x01, 0x26, 0xd3, 0x34, 0x45, 0x6d, 0xb8,
-	0x3a, 0xc0, 0x01, 0x1b, 0xec, 0xa6, 0xf8, 0x04, 0x93, 0xa9, 0x0d, 0xe4, 0xea, 0xd9, 0x3a, 0x81,
-	0x76, 0xd1, 0x67, 0x8e, 0xf1, 0xfe, 0xc2, 0xe8, 0x18, 0x5a, 0x23, 0xfa, 0x1f, 0x02, 0x31, 0x68,
-	0x17, 0x7d, 0xe6, 0xdb, 0xff, 0x3f, 0xb7, 0xc2, 0xd0, 0x7a, 0x8b, 0xc5, 0xb5, 0x13, 0xcf, 0x22,
-	0x6d, 0x40, 0x55, 0xea, 0xa6, 0x2e, 0xb5, 0x61, 0x4d, 0xaa, 0xc8, 0xed, 0x57, 0x4b, 0x68, 0x03,
-	0x56, 0x5c, 0x45, 0x4c, 0x06, 0xe2, 0x9d, 0x72, 0xaf, 0xd2, 0x5f, 0xb6, 0xeb, 0x19, 0x38, 0xa6,
-	0x31, 0xb7, 0xbe, 0x97, 0xa1, 0x5d, 0xf4, 0x50, 0x71, 0x0e, 0xa1, 0xc1, 0x3c, 0x26, 0x18, 0x9e,
-	0xb1, 0x8f, 0x58, 0x30, 0xdf, 0x53, 0x66, 0x8f, 0x52, 0x33, 0x3d, 0x69, 0xb0, 0x9f, 0x63, 0xec,
-	0x95, 0xec, 0x82, 0x06, 0x7a, 0x08, 0x8b, 0xf4, 0x3c, 0x99, 0x5c, 0xe6, 0x5f, 0x49, 0xc5, 0x46,
-	0x3e, 0x79, 0x99, 0x80, 0x7b, 0x25, 0x5b, 0xae, 0x9a, 0x17, 0x06, 0x34, 0xf2, 0x5a, 0xe8, 0x18,
-	0x9a, 0x01, 0xa5, 0x21, 0x77, 0xce, 0x70, 0xe0, 0x1c, 0xc5, 0x8e, 0xeb, 0x93, 0x8e, 0xd1, 0xab,
-	0xf4, 0x6b, 0xc3, 0x17, 0xf3, 0x4f, 0x34, 0x98, 0x24, 0x12, 0x07, 0x38, 0xd8, 0x89, 0x13, 0x53,
-	0x4f, 0x84, 0xb1, 0xbd, 0x12, 0xdc, 0xc4, 0xcc, 0x57, 0x80, 0x6e, 0xbf, 0x84, 0x9a, 0x50, 0xb9,
-	0xde, 0xd5, 0xe4, 0x11, 0x59, 0xb0, 0x78, 0x8e, 0x67, 0x11, 0x55, 0x49, 0xea, 0x37, 0xf6, 0x80,
-	0xdb, 0x72, 0xe9, 0x79, 0xf9, 0xa9, 0xb1, 0x53, 0x85, 0x85, 0x23, 0xdf, 0x8d, 0xad, 0xf7, 0xb0,
-	0x3a, 0x89, 0xf8, 0xe9, 0x24, 0x9a, 0xcd, 0xee, 0xe8, 0x68, 0x62, 0x68, 0x5e, 0x3b, 0xdc, 0xcd,
-	0x2d, 0xc3, 0xd0, 0x7a, 0x13, 0xb8, 0x58, 0xd0, 0x49, 0x48, 0x39, 0xf5, 0x08, 0xfd, 0xf7, 0x47,
-	0xb2, 0x03, 0xed, 0xa2, 0x85, 0xcc, 0x32, 0xfc, 0xbc, 0x00, 0xd5, 0x77, 0x69, 0xb3, 0xa3, 0x31,
-	0x34, 0xf2, 0x2d, 0x8c, 0xcc, 0xd4, 0x50, 0x5b, 0xe9, 0xe6, 0x9a, 0x76, 0x4d, 0xaa, 0x5a, 0x25,
-	0xf4, 0x1a, 0x9a, 0xc5, 0x12, 0x45, 0x0f, 0xe4, 0xc1, 0xd4, 0x77, 0xb2, 0xb9, 0xfe, 0x93, 0xd5,
-	0x2b, 0xc9, 0x31, 0x34, 0xf2, 0x21, 0xd4, 0x7c, 0xda, 0x3f, 0x4f, 0xcd, 0xa7, 0x4f, 0x2d, 0xc5,
-	0xf2, 0x1d, 0x9a, 0x85, 0xd5, 0x15, 0x78, 0x16, 0x56, 0x5b, 0xba, 0x52, 0x2c, 0xdf, 0x5f, 0x4a,
-	0x4c, 0x5b, 0x9e, 0x4a, 0x4c, 0x5f, 0x78, 0x56, 0x09, 0x1d, 0x40, 0x23, 0x7f, 0xed, 0x94, 0x98,
-	0xb6, 0xb6, 0x94, 0x98, 0xfe, 0x9e, 0x5a, 0xa5, 0x4d, 0x03, 0x3d, 0x83, 0xa5, 0xec, 0x00, 0xa3,
-	0x7b, 0xe9, 0xcb, 0x85, 0x1b, 0x63, 0xb6, 0x0a, 0x68, 0x46, 0xde, 0x69, 0x5e, 0x5c, 0x76, 0x8d,
-	0x2f, 0x97, 0x5d, 0xe3, 0xeb, 0x65, 0xd7, 0xf8, 0xf4, 0xad, 0x5b, 0x3a, 0xaa, 0xa6, 0xdf, 0xf9,
-	0xc7, 0x3f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x4e, 0xf7, 0xc4, 0xde, 0x0d, 0x08, 0x00, 0x00,
+	proto.RegisterType((*ActivateClientRequest)(nil), "yorkie.v1.ActivateClientRequest")
+	proto.RegisterType((*ActivateClientResponse)(nil), "yorkie.v1.ActivateClientResponse")
+	proto.RegisterType((*DeactivateClientRequest)(nil), "yorkie.v1.DeactivateClientRequest")
+	proto.RegisterType((*DeactivateClientResponse)(nil), "yorkie.v1.DeactivateClientResponse")
+	proto.RegisterType((*AttachDocumentRequest)(nil), "yorkie.v1.AttachDocumentRequest")
+	proto.RegisterType((*AttachDocumentResponse)(nil), "yorkie.v1.AttachDocumentResponse")
+	proto.RegisterType((*DetachDocumentRequest)(nil), "yorkie.v1.DetachDocumentRequest")
+	proto.RegisterType((*DetachDocumentResponse)(nil), "yorkie.v1.DetachDocumentResponse")
+	proto.RegisterType((*WatchDocumentsRequest)(nil), "yorkie.v1.WatchDocumentsRequest")
+	proto.RegisterType((*WatchDocumentsResponse)(nil), "yorkie.v1.WatchDocumentsResponse")
+	proto.RegisterType((*WatchDocumentsResponse_Initialization)(nil), "yorkie.v1.WatchDocumentsResponse.Initialization")
+	proto.RegisterMapType((map[string]*Clients)(nil), "yorkie.v1.WatchDocumentsResponse.Initialization.PeersMapByDocEntry")
+	proto.RegisterType((*PushPullRequest)(nil), "yorkie.v1.PushPullRequest")
+	proto.RegisterType((*PushPullResponse)(nil), "yorkie.v1.PushPullResponse")
+	proto.RegisterType((*UpdatePresenceRequest)(nil), "yorkie.v1.UpdatePresenceRequest")
+	proto.RegisterType((*UpdatePresenceResponse)(nil), "yorkie.v1.UpdatePresenceResponse")
+}
+
+func init() { proto.RegisterFile("yorkie/v1/yorkie.proto", fileDescriptor_40070c858814ab24) }
+
+var fileDescriptor_40070c858814ab24 = []byte{
+	// 670 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xc1, 0x4e, 0xdb, 0x4c,
+	0x10, 0x8e, 0x09, 0x20, 0x32, 0x81, 0xfc, 0xf9, 0xb7, 0x8a, 0x9b, 0x1a, 0x35, 0x4a, 0xcd, 0x25,
+	0x55, 0xa5, 0x00, 0xa9, 0x44, 0xab, 0xf6, 0x04, 0x04, 0x09, 0x84, 0x2a, 0x45, 0x2e, 0x15, 0x02,
+	0xa9, 0x8a, 0x96, 0xcd, 0x34, 0x58, 0x31, 0xb6, 0x6b, 0x6f, 0x2c, 0xb9, 0xa7, 0x3e, 0x46, 0x1f,
+	0xa9, 0xc7, 0x1e, 0xfa, 0x00, 0x15, 0x7d, 0x85, 0x3e, 0x40, 0x15, 0xaf, 0x43, 0xbc, 0x66, 0x45,
+	0x29, 0x12, 0xbd, 0xad, 0x77, 0xe7, 0xfb, 0xbe, 0x99, 0xf1, 0xec, 0x67, 0x83, 0x1e, 0x7b, 0xc1,
+	0xc8, 0xc6, 0xf5, 0x68, 0x73, 0x5d, 0xac, 0xda, 0x7e, 0xe0, 0x71, 0x8f, 0x94, 0xd2, 0xa7, 0x68,
+	0xd3, 0x78, 0x34, 0x0b, 0x09, 0x30, 0xf4, 0xc6, 0x01, 0xc3, 0x50, 0x44, 0x99, 0x5b, 0x50, 0xdb,
+	0x66, 0xdc, 0x8e, 0x28, 0xc7, 0x5d, 0xc7, 0x46, 0x97, 0x5b, 0xf8, 0x71, 0x8c, 0x21, 0x27, 0x8f,
+	0x01, 0x58, 0xb2, 0xd1, 0x1f, 0x61, 0x5c, 0xd7, 0x9a, 0x5a, 0xab, 0x64, 0x95, 0xc4, 0xce, 0x21,
+	0xc6, 0xe6, 0x11, 0xe8, 0x79, 0x5c, 0xe8, 0x7b, 0x6e, 0x88, 0x7f, 0x00, 0x92, 0x55, 0x48, 0x1f,
+	0xfa, 0xf6, 0xa0, 0x3e, 0xd7, 0xd4, 0x5a, 0xcb, 0xd6, 0x92, 0xd8, 0x38, 0x18, 0x98, 0x5b, 0xf0,
+	0xb0, 0x8b, 0x54, 0x99, 0x8f, 0x84, 0xd3, 0x72, 0xb8, 0x17, 0x50, 0xbf, 0x8e, 0x4b, 0xf3, 0xb9,
+	0x11, 0xe8, 0x40, 0x6d, 0x9b, 0x73, 0xca, 0xce, 0xbb, 0x1e, 0x1b, 0x5f, 0xdc, 0x52, 0x8e, 0x6c,
+	0x41, 0x99, 0x9d, 0x53, 0x77, 0x88, 0x7d, 0x9f, 0xb2, 0x51, 0x52, 0x45, 0xb9, 0x53, 0x6b, 0x5f,
+	0x35, 0xbc, 0xbd, 0x9b, 0x9c, 0xf6, 0x28, 0x1b, 0x59, 0xc0, 0xae, 0xd6, 0xe6, 0x05, 0xe8, 0x79,
+	0xb5, 0x5b, 0x24, 0x79, 0x67, 0x39, 0x07, 0x6a, 0x5d, 0xfc, 0x67, 0xc5, 0x79, 0xa0, 0xe7, 0xd5,
+	0x6e, 0x37, 0x11, 0x77, 0x15, 0x1c, 0x42, 0xed, 0x98, 0xf2, 0x99, 0x5e, 0x38, 0x2d, 0xef, 0x29,
+	0x2c, 0x0a, 0xf6, 0x44, 0xab, 0xdc, 0xf9, 0x3f, 0xcb, 0x25, 0x86, 0x23, 0x0d, 0x20, 0x6b, 0xb0,
+	0x32, 0x48, 0xe1, 0x93, 0xe4, 0xc2, 0xfa, 0x5c, 0xb3, 0xd8, 0x2a, 0x59, 0xcb, 0xd3, 0xcd, 0x43,
+	0x8c, 0x43, 0xf3, 0x73, 0x11, 0xf4, 0xbc, 0x52, 0x5a, 0xda, 0x29, 0x54, 0x6c, 0xd7, 0xe6, 0x36,
+	0x75, 0xec, 0x4f, 0x94, 0xdb, 0x9e, 0x9b, 0x4a, 0x6e, 0x64, 0x24, 0xd5, 0xd0, 0xf6, 0x81, 0x84,
+	0xdb, 0x2f, 0x58, 0x39, 0x26, 0xf2, 0x0c, 0x16, 0x30, 0x9a, 0x54, 0x21, 0x3a, 0xf2, 0x20, 0x43,
+	0xd9, 0xf5, 0xd8, 0xde, 0xe4, 0x68, 0xbf, 0x60, 0x89, 0x18, 0xe3, 0xbb, 0x06, 0x15, 0x99, 0x91,
+	0x38, 0x50, 0xf5, 0x11, 0x83, 0xb0, 0x7f, 0x41, 0xfd, 0xfe, 0x59, 0xdc, 0x1f, 0x78, 0xac, 0xae,
+	0x35, 0x8b, 0xad, 0x72, 0x67, 0xf7, 0x6f, 0xb3, 0x6b, 0xf7, 0x26, 0x44, 0x6f, 0xa8, 0xbf, 0x13,
+	0x4f, 0xa4, 0x5d, 0x1e, 0xc4, 0xd6, 0x8a, 0x9f, 0xdd, 0x33, 0x8e, 0x80, 0x5c, 0x0f, 0x22, 0x55,
+	0x28, 0xce, 0xde, 0xf9, 0x64, 0x49, 0x5a, 0xb0, 0x10, 0x51, 0x67, 0x8c, 0x69, 0x55, 0xe4, 0xda,
+	0xbb, 0x09, 0x2d, 0x11, 0xf0, 0x6a, 0xee, 0xa5, 0xb6, 0xb3, 0x08, 0xf3, 0x67, 0xde, 0x20, 0x36,
+	0x3f, 0xc0, 0x7f, 0xbd, 0x71, 0x78, 0xde, 0x1b, 0x3b, 0xce, 0xbd, 0x0e, 0xf1, 0x10, 0xaa, 0x33,
+	0x9d, 0xfb, 0xbc, 0x9b, 0x43, 0xa8, 0xbd, 0xf3, 0x07, 0x94, 0x63, 0x2f, 0xc0, 0x10, 0x5d, 0x86,
+	0xf7, 0x35, 0xbc, 0x75, 0xd0, 0xf3, 0x42, 0xa2, 0xae, 0xce, 0xaf, 0x79, 0x58, 0x39, 0x49, 0xb8,
+	0xdf, 0x62, 0x10, 0xd9, 0x0c, 0xc9, 0x31, 0x54, 0x64, 0x53, 0x27, 0xcd, 0x8c, 0xba, 0xf2, 0x3b,
+	0x61, 0x3c, 0xb9, 0x21, 0x42, 0x08, 0x99, 0x05, 0xf2, 0x1e, 0xaa, 0x79, 0x7f, 0x26, 0x66, 0x76,
+	0x9e, 0xd5, 0xa6, 0x6f, 0xac, 0xdd, 0x18, 0x73, 0x45, 0x7f, 0x0c, 0x15, 0xb9, 0x46, 0x29, 0x6f,
+	0x65, 0x9f, 0xa5, 0xbc, 0xd5, 0x0d, 0x12, 0xc4, 0xb2, 0x61, 0xcb, 0x0d, 0x51, 0x7d, 0x39, 0xe4,
+	0x86, 0x28, 0xdd, 0x5e, 0x10, 0xcb, 0x66, 0x29, 0x11, 0x2b, 0x5d, 0x5b, 0x22, 0x56, 0x3b, 0xad,
+	0x59, 0x20, 0x27, 0x50, 0x91, 0x6f, 0xb4, 0x44, 0xac, 0xf4, 0x4b, 0x89, 0x58, 0x6d, 0x07, 0x66,
+	0x61, 0x43, 0x23, 0x7b, 0xb0, 0x34, 0xbd, 0x1b, 0xc4, 0xc8, 0x40, 0x72, 0x17, 0xd3, 0x58, 0x55,
+	0x9e, 0x4d, 0x89, 0x76, 0xf4, 0xaf, 0x97, 0x0d, 0xed, 0xdb, 0x65, 0x43, 0xfb, 0x71, 0xd9, 0xd0,
+	0xbe, 0xfc, 0x6c, 0x14, 0x4e, 0xe7, 0xdb, 0xaf, 0xa3, 0xcd, 0xb3, 0xc5, 0xe4, 0x87, 0xe4, 0xf9,
+	0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xef, 0xda, 0xbe, 0x6b, 0xd0, 0x08, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -909,78 +911,78 @@ var _ grpc.ClientConn
 // is compatible with the grpc package it is being compiled against.
 const _ = grpc.SupportPackageIsVersion4
 
-// YorkieClient is the client API for Yorkie service.
+// YorkieServiceClient is the client API for YorkieService service.
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
-type YorkieClient interface {
+type YorkieServiceClient interface {
 	ActivateClient(ctx context.Context, in *ActivateClientRequest, opts ...grpc.CallOption) (*ActivateClientResponse, error)
 	DeactivateClient(ctx context.Context, in *DeactivateClientRequest, opts ...grpc.CallOption) (*DeactivateClientResponse, error)
 	UpdatePresence(ctx context.Context, in *UpdatePresenceRequest, opts ...grpc.CallOption) (*UpdatePresenceResponse, error)
 	AttachDocument(ctx context.Context, in *AttachDocumentRequest, opts ...grpc.CallOption) (*AttachDocumentResponse, error)
 	DetachDocument(ctx context.Context, in *DetachDocumentRequest, opts ...grpc.CallOption) (*DetachDocumentResponse, error)
-	WatchDocuments(ctx context.Context, in *WatchDocumentsRequest, opts ...grpc.CallOption) (Yorkie_WatchDocumentsClient, error)
+	WatchDocuments(ctx context.Context, in *WatchDocumentsRequest, opts ...grpc.CallOption) (YorkieService_WatchDocumentsClient, error)
 	PushPull(ctx context.Context, in *PushPullRequest, opts ...grpc.CallOption) (*PushPullResponse, error)
 }
 
-type yorkieClient struct {
+type yorkieServiceClient struct {
 	cc *grpc.ClientConn
 }
 
-func NewYorkieClient(cc *grpc.ClientConn) YorkieClient {
-	return &yorkieClient{cc}
+func NewYorkieServiceClient(cc *grpc.ClientConn) YorkieServiceClient {
+	return &yorkieServiceClient{cc}
 }
 
-func (c *yorkieClient) ActivateClient(ctx context.Context, in *ActivateClientRequest, opts ...grpc.CallOption) (*ActivateClientResponse, error) {
+func (c *yorkieServiceClient) ActivateClient(ctx context.Context, in *ActivateClientRequest, opts ...grpc.CallOption) (*ActivateClientResponse, error) {
 	out := new(ActivateClientResponse)
-	err := c.cc.Invoke(ctx, "/api.Yorkie/ActivateClient", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/yorkie.v1.YorkieService/ActivateClient", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *yorkieClient) DeactivateClient(ctx context.Context, in *DeactivateClientRequest, opts ...grpc.CallOption) (*DeactivateClientResponse, error) {
+func (c *yorkieServiceClient) DeactivateClient(ctx context.Context, in *DeactivateClientRequest, opts ...grpc.CallOption) (*DeactivateClientResponse, error) {
 	out := new(DeactivateClientResponse)
-	err := c.cc.Invoke(ctx, "/api.Yorkie/DeactivateClient", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/yorkie.v1.YorkieService/DeactivateClient", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *yorkieClient) UpdatePresence(ctx context.Context, in *UpdatePresenceRequest, opts ...grpc.CallOption) (*UpdatePresenceResponse, error) {
+func (c *yorkieServiceClient) UpdatePresence(ctx context.Context, in *UpdatePresenceRequest, opts ...grpc.CallOption) (*UpdatePresenceResponse, error) {
 	out := new(UpdatePresenceResponse)
-	err := c.cc.Invoke(ctx, "/api.Yorkie/UpdatePresence", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/yorkie.v1.YorkieService/UpdatePresence", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *yorkieClient) AttachDocument(ctx context.Context, in *AttachDocumentRequest, opts ...grpc.CallOption) (*AttachDocumentResponse, error) {
+func (c *yorkieServiceClient) AttachDocument(ctx context.Context, in *AttachDocumentRequest, opts ...grpc.CallOption) (*AttachDocumentResponse, error) {
 	out := new(AttachDocumentResponse)
-	err := c.cc.Invoke(ctx, "/api.Yorkie/AttachDocument", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/yorkie.v1.YorkieService/AttachDocument", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *yorkieClient) DetachDocument(ctx context.Context, in *DetachDocumentRequest, opts ...grpc.CallOption) (*DetachDocumentResponse, error) {
+func (c *yorkieServiceClient) DetachDocument(ctx context.Context, in *DetachDocumentRequest, opts ...grpc.CallOption) (*DetachDocumentResponse, error) {
 	out := new(DetachDocumentResponse)
-	err := c.cc.Invoke(ctx, "/api.Yorkie/DetachDocument", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/yorkie.v1.YorkieService/DetachDocument", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *yorkieClient) WatchDocuments(ctx context.Context, in *WatchDocumentsRequest, opts ...grpc.CallOption) (Yorkie_WatchDocumentsClient, error) {
-	stream, err := c.cc.NewStream(ctx, &_Yorkie_serviceDesc.Streams[0], "/api.Yorkie/WatchDocuments", opts...)
+func (c *yorkieServiceClient) WatchDocuments(ctx context.Context, in *WatchDocumentsRequest, opts ...grpc.CallOption) (YorkieService_WatchDocumentsClient, error) {
+	stream, err := c.cc.NewStream(ctx, &_YorkieService_serviceDesc.Streams[0], "/yorkie.v1.YorkieService/WatchDocuments", opts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &yorkieWatchDocumentsClient{stream}
+	x := &yorkieServiceWatchDocumentsClient{stream}
 	if err := x.ClientStream.SendMsg(in); err != nil {
 		return nil, err
 	}
@@ -990,16 +992,16 @@ func (c *yorkieClient) WatchDocuments(ctx context.Context, in *WatchDocumentsReq
 	return x, nil
 }
 
-type Yorkie_WatchDocumentsClient interface {
+type YorkieService_WatchDocumentsClient interface {
 	Recv() (*WatchDocumentsResponse, error)
 	grpc.ClientStream
 }
 
-type yorkieWatchDocumentsClient struct {
+type yorkieServiceWatchDocumentsClient struct {
 	grpc.ClientStream
 }
 
-func (x *yorkieWatchDocumentsClient) Recv() (*WatchDocumentsResponse, error) {
+func (x *yorkieServiceWatchDocumentsClient) Recv() (*WatchDocumentsResponse, error) {
 	m := new(WatchDocumentsResponse)
 	if err := x.ClientStream.RecvMsg(m); err != nil {
 		return nil, err
@@ -1007,222 +1009,222 @@ func (x *yorkieWatchDocumentsClient) Recv() (*WatchDocumentsResponse, error) {
 	return m, nil
 }
 
-func (c *yorkieClient) PushPull(ctx context.Context, in *PushPullRequest, opts ...grpc.CallOption) (*PushPullResponse, error) {
+func (c *yorkieServiceClient) PushPull(ctx context.Context, in *PushPullRequest, opts ...grpc.CallOption) (*PushPullResponse, error) {
 	out := new(PushPullResponse)
-	err := c.cc.Invoke(ctx, "/api.Yorkie/PushPull", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/yorkie.v1.YorkieService/PushPull", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-// YorkieServer is the server API for Yorkie service.
-type YorkieServer interface {
+// YorkieServiceServer is the server API for YorkieService service.
+type YorkieServiceServer interface {
 	ActivateClient(context.Context, *ActivateClientRequest) (*ActivateClientResponse, error)
 	DeactivateClient(context.Context, *DeactivateClientRequest) (*DeactivateClientResponse, error)
 	UpdatePresence(context.Context, *UpdatePresenceRequest) (*UpdatePresenceResponse, error)
 	AttachDocument(context.Context, *AttachDocumentRequest) (*AttachDocumentResponse, error)
 	DetachDocument(context.Context, *DetachDocumentRequest) (*DetachDocumentResponse, error)
-	WatchDocuments(*WatchDocumentsRequest, Yorkie_WatchDocumentsServer) error
+	WatchDocuments(*WatchDocumentsRequest, YorkieService_WatchDocumentsServer) error
 	PushPull(context.Context, *PushPullRequest) (*PushPullResponse, error)
 }
 
-// UnimplementedYorkieServer can be embedded to have forward compatible implementations.
-type UnimplementedYorkieServer struct {
+// UnimplementedYorkieServiceServer can be embedded to have forward compatible implementations.
+type UnimplementedYorkieServiceServer struct {
 }
 
-func (*UnimplementedYorkieServer) ActivateClient(ctx context.Context, req *ActivateClientRequest) (*ActivateClientResponse, error) {
+func (*UnimplementedYorkieServiceServer) ActivateClient(ctx context.Context, req *ActivateClientRequest) (*ActivateClientResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method ActivateClient not implemented")
 }
-func (*UnimplementedYorkieServer) DeactivateClient(ctx context.Context, req *DeactivateClientRequest) (*DeactivateClientResponse, error) {
+func (*UnimplementedYorkieServiceServer) DeactivateClient(ctx context.Context, req *DeactivateClientRequest) (*DeactivateClientResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method DeactivateClient not implemented")
 }
-func (*UnimplementedYorkieServer) UpdatePresence(ctx context.Context, req *UpdatePresenceRequest) (*UpdatePresenceResponse, error) {
+func (*UnimplementedYorkieServiceServer) UpdatePresence(ctx context.Context, req *UpdatePresenceRequest) (*UpdatePresenceResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method UpdatePresence not implemented")
 }
-func (*UnimplementedYorkieServer) AttachDocument(ctx context.Context, req *AttachDocumentRequest) (*AttachDocumentResponse, error) {
+func (*UnimplementedYorkieServiceServer) AttachDocument(ctx context.Context, req *AttachDocumentRequest) (*AttachDocumentResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method AttachDocument not implemented")
 }
-func (*UnimplementedYorkieServer) DetachDocument(ctx context.Context, req *DetachDocumentRequest) (*DetachDocumentResponse, error) {
+func (*UnimplementedYorkieServiceServer) DetachDocument(ctx context.Context, req *DetachDocumentRequest) (*DetachDocumentResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method DetachDocument not implemented")
 }
-func (*UnimplementedYorkieServer) WatchDocuments(req *WatchDocumentsRequest, srv Yorkie_WatchDocumentsServer) error {
+func (*UnimplementedYorkieServiceServer) WatchDocuments(req *WatchDocumentsRequest, srv YorkieService_WatchDocumentsServer) error {
 	return status.Errorf(codes.Unimplemented, "method WatchDocuments not implemented")
 }
-func (*UnimplementedYorkieServer) PushPull(ctx context.Context, req *PushPullRequest) (*PushPullResponse, error) {
+func (*UnimplementedYorkieServiceServer) PushPull(ctx context.Context, req *PushPullRequest) (*PushPullResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method PushPull not implemented")
 }
 
-func RegisterYorkieServer(s *grpc.Server, srv YorkieServer) {
-	s.RegisterService(&_Yorkie_serviceDesc, srv)
+func RegisterYorkieServiceServer(s *grpc.Server, srv YorkieServiceServer) {
+	s.RegisterService(&_YorkieService_serviceDesc, srv)
 }
 
-func _Yorkie_ActivateClient_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _YorkieService_ActivateClient_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(ActivateClientRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(YorkieServer).ActivateClient(ctx, in)
+		return srv.(YorkieServiceServer).ActivateClient(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/api.Yorkie/ActivateClient",
+		FullMethod: "/yorkie.v1.YorkieService/ActivateClient",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(YorkieServer).ActivateClient(ctx, req.(*ActivateClientRequest))
+		return srv.(YorkieServiceServer).ActivateClient(ctx, req.(*ActivateClientRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Yorkie_DeactivateClient_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _YorkieService_DeactivateClient_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(DeactivateClientRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(YorkieServer).DeactivateClient(ctx, in)
+		return srv.(YorkieServiceServer).DeactivateClient(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/api.Yorkie/DeactivateClient",
+		FullMethod: "/yorkie.v1.YorkieService/DeactivateClient",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(YorkieServer).DeactivateClient(ctx, req.(*DeactivateClientRequest))
+		return srv.(YorkieServiceServer).DeactivateClient(ctx, req.(*DeactivateClientRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Yorkie_UpdatePresence_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _YorkieService_UpdatePresence_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(UpdatePresenceRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(YorkieServer).UpdatePresence(ctx, in)
+		return srv.(YorkieServiceServer).UpdatePresence(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/api.Yorkie/UpdatePresence",
+		FullMethod: "/yorkie.v1.YorkieService/UpdatePresence",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(YorkieServer).UpdatePresence(ctx, req.(*UpdatePresenceRequest))
+		return srv.(YorkieServiceServer).UpdatePresence(ctx, req.(*UpdatePresenceRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Yorkie_AttachDocument_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _YorkieService_AttachDocument_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(AttachDocumentRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(YorkieServer).AttachDocument(ctx, in)
+		return srv.(YorkieServiceServer).AttachDocument(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/api.Yorkie/AttachDocument",
+		FullMethod: "/yorkie.v1.YorkieService/AttachDocument",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(YorkieServer).AttachDocument(ctx, req.(*AttachDocumentRequest))
+		return srv.(YorkieServiceServer).AttachDocument(ctx, req.(*AttachDocumentRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Yorkie_DetachDocument_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _YorkieService_DetachDocument_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(DetachDocumentRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(YorkieServer).DetachDocument(ctx, in)
+		return srv.(YorkieServiceServer).DetachDocument(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/api.Yorkie/DetachDocument",
+		FullMethod: "/yorkie.v1.YorkieService/DetachDocument",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(YorkieServer).DetachDocument(ctx, req.(*DetachDocumentRequest))
+		return srv.(YorkieServiceServer).DetachDocument(ctx, req.(*DetachDocumentRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Yorkie_WatchDocuments_Handler(srv interface{}, stream grpc.ServerStream) error {
+func _YorkieService_WatchDocuments_Handler(srv interface{}, stream grpc.ServerStream) error {
 	m := new(WatchDocumentsRequest)
 	if err := stream.RecvMsg(m); err != nil {
 		return err
 	}
-	return srv.(YorkieServer).WatchDocuments(m, &yorkieWatchDocumentsServer{stream})
+	return srv.(YorkieServiceServer).WatchDocuments(m, &yorkieServiceWatchDocumentsServer{stream})
 }
 
-type Yorkie_WatchDocumentsServer interface {
+type YorkieService_WatchDocumentsServer interface {
 	Send(*WatchDocumentsResponse) error
 	grpc.ServerStream
 }
 
-type yorkieWatchDocumentsServer struct {
+type yorkieServiceWatchDocumentsServer struct {
 	grpc.ServerStream
 }
 
-func (x *yorkieWatchDocumentsServer) Send(m *WatchDocumentsResponse) error {
+func (x *yorkieServiceWatchDocumentsServer) Send(m *WatchDocumentsResponse) error {
 	return x.ServerStream.SendMsg(m)
 }
 
-func _Yorkie_PushPull_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _YorkieService_PushPull_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(PushPullRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(YorkieServer).PushPull(ctx, in)
+		return srv.(YorkieServiceServer).PushPull(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/api.Yorkie/PushPull",
+		FullMethod: "/yorkie.v1.YorkieService/PushPull",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(YorkieServer).PushPull(ctx, req.(*PushPullRequest))
+		return srv.(YorkieServiceServer).PushPull(ctx, req.(*PushPullRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-var _Yorkie_serviceDesc = grpc.ServiceDesc{
-	ServiceName: "api.Yorkie",
-	HandlerType: (*YorkieServer)(nil),
+var _YorkieService_serviceDesc = grpc.ServiceDesc{
+	ServiceName: "yorkie.v1.YorkieService",
+	HandlerType: (*YorkieServiceServer)(nil),
 	Methods: []grpc.MethodDesc{
 		{
 			MethodName: "ActivateClient",
-			Handler:    _Yorkie_ActivateClient_Handler,
+			Handler:    _YorkieService_ActivateClient_Handler,
 		},
 		{
 			MethodName: "DeactivateClient",
-			Handler:    _Yorkie_DeactivateClient_Handler,
+			Handler:    _YorkieService_DeactivateClient_Handler,
 		},
 		{
 			MethodName: "UpdatePresence",
-			Handler:    _Yorkie_UpdatePresence_Handler,
+			Handler:    _YorkieService_UpdatePresence_Handler,
 		},
 		{
 			MethodName: "AttachDocument",
-			Handler:    _Yorkie_AttachDocument_Handler,
+			Handler:    _YorkieService_AttachDocument_Handler,
 		},
 		{
 			MethodName: "DetachDocument",
-			Handler:    _Yorkie_DetachDocument_Handler,
+			Handler:    _YorkieService_DetachDocument_Handler,
 		},
 		{
 			MethodName: "PushPull",
-			Handler:    _Yorkie_PushPull_Handler,
+			Handler:    _YorkieService_PushPull_Handler,
 		},
 	},
 	Streams: []grpc.StreamDesc{
 		{
 			StreamName:    "WatchDocuments",
-			Handler:       _Yorkie_WatchDocuments_Handler,
+			Handler:       _YorkieService_WatchDocuments_Handler,
 			ServerStreams: true,
 		},
 	},
-	Metadata: "yorkie.proto",
+	Metadata: "yorkie/v1/yorkie.proto",
 }
 
 func (m *ActivateClientRequest) Marshal() (dAtA []byte, err error) {
diff --git a/api/yorkie.proto b/api/yorkie/v1/yorkie.proto
similarity index 95%
rename from api/yorkie.proto
rename to api/yorkie/v1/yorkie.proto
index 44c57e5a..220ea16f 100644
--- a/api/yorkie.proto
+++ b/api/yorkie/v1/yorkie.proto
@@ -13,15 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 syntax = "proto3";
 
-package api;
+package yorkie.v1;
+
+import "yorkie/v1/resources.proto";
 
-import "resources.proto";
+option go_package = ".;v1";
 
 // Yorkie is a service that provides a API for SDKs.
-service Yorkie {
+service YorkieService {
   rpc ActivateClient (ActivateClientRequest) returns (ActivateClientResponse) {}
   rpc DeactivateClient (DeactivateClientRequest) returns (DeactivateClientResponse) {}
   rpc UpdatePresence (UpdatePresenceRequest) returns (UpdatePresenceResponse) {}
diff --git a/buf.work.yaml b/buf.work.yaml
new file mode 100644
index 00000000..a2fa5f51
--- /dev/null
+++ b/buf.work.yaml
@@ -0,0 +1,3 @@
+version: v1
+directories:
+  - api
diff --git a/client/client.go b/client/client.go
index 523f4eb9..dab18914 100644
--- a/client/client.go
+++ b/client/client.go
@@ -27,9 +27,9 @@ import (
 	"google.golang.org/grpc/credentials"
 	"google.golang.org/grpc/credentials/insecure"
 
-	"github.com/yorkie-team/yorkie/api"
 	"github.com/yorkie-team/yorkie/api/converter"
 	"github.com/yorkie-team/yorkie/api/types"
+	api "github.com/yorkie-team/yorkie/api/yorkie/v1"
 	"github.com/yorkie-team/yorkie/pkg/document"
 	"github.com/yorkie-team/yorkie/pkg/document/key"
 	"github.com/yorkie-team/yorkie/pkg/document/time"
@@ -67,7 +67,7 @@ type Attachment struct {
 // to the server to synchronize with other replicas in remote.
 type Client struct {
 	conn        *grpc.ClientConn
-	client      api.YorkieClient
+	client      api.YorkieServiceClient
 	dialOptions []grpc.DialOption
 	logger      *zap.Logger
 
@@ -174,7 +174,7 @@ func (c *Client) Dial(rpcAddr string) error {
 	}
 
 	c.conn = conn
-	c.client = api.NewYorkieClient(conn)
+	c.client = api.NewYorkieServiceClient(conn)
 
 	return nil
 }
diff --git a/server/admin/cluster_server.go b/server/admin/cluster_server.go
index 6b1c72d4..33b074dd 100644
--- a/server/admin/cluster_server.go
+++ b/server/admin/cluster_server.go
@@ -19,9 +19,9 @@ package admin
 import (
 	"context"
 
-	"github.com/yorkie-team/yorkie/api"
 	"github.com/yorkie-team/yorkie/api/converter"
 	"github.com/yorkie-team/yorkie/api/types"
+	api "github.com/yorkie-team/yorkie/api/yorkie/v1"
 	"github.com/yorkie-team/yorkie/pkg/document/time"
 	"github.com/yorkie-team/yorkie/server/backend"
 	"github.com/yorkie-team/yorkie/server/logging"
diff --git a/server/admin/interceptors/auth.go b/server/admin/interceptors/auth.go
index 71d9998e..5efa0de8 100644
--- a/server/admin/interceptors/auth.go
+++ b/server/admin/interceptors/auth.go
@@ -77,9 +77,9 @@ func (i *AuthInterceptor) authenticate(
 ) error {
 	// NOTE(hackerwins): We don't need to authenticate the request if the
 	// request is from the peer clusters.
-	if method == "/api.Admin/LogIn" ||
-		method == "/api.Admin/SignUp" ||
-		!strings.HasPrefix(method, "/api.Admin/") {
+	if method == "/yorkie.v1.AdminService/LogIn" ||
+		method == "/yorkie.v1.AdminService/SignUp" ||
+		!strings.HasPrefix(method, "/yorkie.v1.AdminService/") {
 		return nil
 	}
 
diff --git a/server/admin/server.go b/server/admin/server.go
index dfa1e0ad..b1942d69 100644
--- a/server/admin/server.go
+++ b/server/admin/server.go
@@ -26,9 +26,9 @@ import (
 	grpcmiddleware "github.com/grpc-ecosystem/go-grpc-middleware"
 	"google.golang.org/grpc"
 
-	"github.com/yorkie-team/yorkie/api"
 	"github.com/yorkie-team/yorkie/api/converter"
 	"github.com/yorkie-team/yorkie/api/types"
+	api "github.com/yorkie-team/yorkie/api/yorkie/v1"
 	"github.com/yorkie-team/yorkie/pkg/document/key"
 	"github.com/yorkie-team/yorkie/server/admin/auth"
 	"github.com/yorkie-team/yorkie/server/admin/interceptors"
@@ -99,10 +99,10 @@ func NewServer(conf *Config, be *backend.Backend) *Server {
 		tokenManager: tokenManager,
 	}
 
-	api.RegisterAdminServer(grpcServer, server)
+	api.RegisterAdminServiceServer(grpcServer, server)
 	// TODO(hackerwins): ClusterServer need to be handled by different authentication mechanism.
 	// Consider extracting the servers to another grpcServer.
-	api.RegisterClusterServer(grpcServer, newClusterServer(be))
+	api.RegisterClusterServiceServer(grpcServer, newClusterServer(be))
 
 	return server
 }
diff --git a/server/backend/database/change_info.go b/server/backend/database/change_info.go
index 1138286b..4e6184bf 100644
--- a/server/backend/database/change_info.go
+++ b/server/backend/database/change_info.go
@@ -19,9 +19,9 @@ package database
 import (
 	"errors"
 
-	"github.com/yorkie-team/yorkie/api"
 	"github.com/yorkie-team/yorkie/api/converter"
 	"github.com/yorkie-team/yorkie/api/types"
+	api "github.com/yorkie-team/yorkie/api/yorkie/v1"
 	"github.com/yorkie-team/yorkie/pkg/document/change"
 	"github.com/yorkie-team/yorkie/pkg/document/operations"
 	"github.com/yorkie-team/yorkie/pkg/document/time"
diff --git a/server/backend/sync/etcd/client.go b/server/backend/sync/etcd/client.go
index 44f8453a..c4b84cae 100644
--- a/server/backend/sync/etcd/client.go
+++ b/server/backend/sync/etcd/client.go
@@ -23,7 +23,7 @@ import (
 	clientv3 "go.etcd.io/etcd/client/v3"
 	"google.golang.org/grpc"
 
-	"github.com/yorkie-team/yorkie/api"
+	api "github.com/yorkie-team/yorkie/api/yorkie/v1"
 	"github.com/yorkie-team/yorkie/server/backend/sync"
 	"github.com/yorkie-team/yorkie/server/backend/sync/memory"
 	"github.com/yorkie-team/yorkie/server/logging"
@@ -31,7 +31,7 @@ import (
 
 // clusterClientInfo represents a cluster client and its connection.
 type clusterClientInfo struct {
-	client api.ClusterClient
+	client api.ClusterServiceClient
 	conn   *grpc.ClientConn
 }
 
diff --git a/server/backend/sync/etcd/pubsub.go b/server/backend/sync/etcd/pubsub.go
index 150a9c25..1e20dc36 100644
--- a/server/backend/sync/etcd/pubsub.go
+++ b/server/backend/sync/etcd/pubsub.go
@@ -25,9 +25,9 @@ import (
 	"google.golang.org/grpc"
 	"google.golang.org/grpc/credentials/insecure"
 
-	"github.com/yorkie-team/yorkie/api"
 	"github.com/yorkie-team/yorkie/api/converter"
 	"github.com/yorkie-team/yorkie/api/types"
+	api "github.com/yorkie-team/yorkie/api/yorkie/v1"
 	"github.com/yorkie-team/yorkie/pkg/document/key"
 	"github.com/yorkie-team/yorkie/pkg/document/time"
 	"github.com/yorkie-team/yorkie/server/backend/sync"
@@ -159,7 +159,7 @@ func (c *Client) ensureClusterClient(
 		}
 
 		c.clusterClientMap[member.ID] = &clusterClientInfo{
-			client: api.NewClusterClient(conn),
+			client: api.NewClusterServiceClient(conn),
 			conn:   conn,
 		}
 	}
diff --git a/server/packs/serverpacks.go b/server/packs/serverpacks.go
index f8181f6a..5c62980b 100644
--- a/server/packs/serverpacks.go
+++ b/server/packs/serverpacks.go
@@ -17,8 +17,8 @@
 package packs
 
 import (
-	"github.com/yorkie-team/yorkie/api"
 	"github.com/yorkie-team/yorkie/api/converter"
+	api "github.com/yorkie-team/yorkie/api/yorkie/v1"
 	"github.com/yorkie-team/yorkie/pkg/document/change"
 	"github.com/yorkie-team/yorkie/pkg/document/key"
 	"github.com/yorkie-team/yorkie/pkg/document/time"
diff --git a/server/rpc/interceptors/context.go b/server/rpc/interceptors/context.go
index a898d0e9..016b21ee 100644
--- a/server/rpc/interceptors/context.go
+++ b/server/rpc/interceptors/context.go
@@ -91,7 +91,7 @@ func (i *ContextInterceptor) Stream() grpc.StreamServerInterceptor {
 }
 
 func isRPCService(method string) bool {
-	return strings.HasPrefix(method, "/api.Yorkie/")
+	return strings.HasPrefix(method, "/yorkie.v1.YorkieService/")
 }
 
 // buildContext builds a context data for RPC. It includes the metadata of the
diff --git a/server/rpc/server.go b/server/rpc/server.go
index e488c5fe..94a75645 100644
--- a/server/rpc/server.go
+++ b/server/rpc/server.go
@@ -28,7 +28,7 @@ import (
 	"google.golang.org/grpc/health"
 	healthpb "google.golang.org/grpc/health/grpc_health_v1"
 
-	"github.com/yorkie-team/yorkie/api"
+	api "github.com/yorkie-team/yorkie/api/yorkie/v1"
 	"github.com/yorkie-team/yorkie/server/backend"
 	"github.com/yorkie-team/yorkie/server/grpchelper"
 	"github.com/yorkie-team/yorkie/server/logging"
@@ -80,7 +80,7 @@ func NewServer(conf *Config, be *backend.Backend) (*Server, error) {
 
 	grpcServer := grpc.NewServer(opts...)
 	healthpb.RegisterHealthServer(grpcServer, health.NewServer())
-	api.RegisterYorkieServer(grpcServer, newYorkieServer(yorkieServiceCtx, be))
+	api.RegisterYorkieServiceServer(grpcServer, newYorkieServer(yorkieServiceCtx, be))
 	be.Metrics.RegisterGRPCServer(grpcServer)
 
 	return &Server{
diff --git a/server/rpc/yorkie_server.go b/server/rpc/yorkie_server.go
index 4bd35bd3..31b43b92 100644
--- a/server/rpc/yorkie_server.go
+++ b/server/rpc/yorkie_server.go
@@ -19,9 +19,9 @@ package rpc
 import (
 	"context"
 
-	"github.com/yorkie-team/yorkie/api"
 	"github.com/yorkie-team/yorkie/api/converter"
 	"github.com/yorkie-team/yorkie/api/types"
+	api "github.com/yorkie-team/yorkie/api/yorkie/v1"
 	"github.com/yorkie-team/yorkie/pkg/document/key"
 	"github.com/yorkie-team/yorkie/pkg/document/time"
 	"github.com/yorkie-team/yorkie/server/backend"
@@ -366,7 +366,7 @@ func (s *yorkieServer) PushPull(
 // to the requesting client.
 func (s *yorkieServer) WatchDocuments(
 	req *api.WatchDocumentsRequest,
-	stream api.Yorkie_WatchDocumentsServer,
+	stream api.YorkieService_WatchDocumentsServer,
 ) error {
 	cli, err := converter.FromClient(req.Client)
 	if err != nil {


Test patch:
diff --git a/api/converter/converter_test.go b/api/converter/converter_test.go
index 2f8957a5..c6b41b6c 100644
--- a/api/converter/converter_test.go
+++ b/api/converter/converter_test.go
@@ -23,9 +23,9 @@ import (
 
 	"github.com/stretchr/testify/assert"
 
-	"github.com/yorkie-team/yorkie/api"
 	"github.com/yorkie-team/yorkie/api/converter"
 	"github.com/yorkie-team/yorkie/api/types"
+	api "github.com/yorkie-team/yorkie/api/yorkie/v1"
 	"github.com/yorkie-team/yorkie/pkg/document"
 	"github.com/yorkie-team/yorkie/pkg/document/proxy"
 	"github.com/yorkie-team/yorkie/pkg/document/time"
diff --git a/server/rpc/server_test.go b/server/rpc/server_test.go
index 6eb1a92c..1ac6aee7 100644
--- a/server/rpc/server_test.go
+++ b/server/rpc/server_test.go
@@ -30,7 +30,7 @@ import (
 	"google.golang.org/grpc/credentials/insecure"
 	"google.golang.org/grpc/status"
 
-	"github.com/yorkie-team/yorkie/api"
+	api "github.com/yorkie-team/yorkie/api/yorkie/v1"
 	"github.com/yorkie-team/yorkie/client"
 	"github.com/yorkie-team/yorkie/server/backend"
 	"github.com/yorkie-team/yorkie/server/backend/database"
@@ -50,7 +50,7 @@ var (
 	testRPCServer *rpc.Server
 	testRPCAddr   = fmt.Sprintf("localhost:%d", helper.RPCPort)
 	testAdminAddr = fmt.Sprintf("localhost:%d", helper.AdminPort)
-	testClient    api.YorkieClient
+	testClient    api.YorkieServiceClient
 
 	invalidChangePack = &api.ChangePack{
 		DocumentKey: "invalid",
@@ -112,7 +112,7 @@ func TestMain(m *testing.M) {
 	if err != nil {
 		log.Fatal(err)
 	}
-	testClient = api.NewYorkieClient(conn)
+	testClient = api.NewYorkieServiceClient(conn)
 
 	code := m.Run()