1 // Code generated by protoc-gen-go. DO NOT EDIT.
2 // source: google/spanner/admin/database/v1/spanner_database_admin.proto
5 Package database is a generated protocol buffer package.
7 It is generated from these files:
8 google/spanner/admin/database/v1/spanner_database_admin.proto
10 It has these top-level messages:
15 CreateDatabaseMetadata
17 UpdateDatabaseDdlRequest
18 UpdateDatabaseDdlMetadata
21 GetDatabaseDdlResponse
25 import proto "github.com/golang/protobuf/proto"
28 import _ "google.golang.org/genproto/googleapis/api/annotations"
29 import _ "google.golang.org/genproto/googleapis/api/serviceconfig"
30 import google_iam_v11 "google.golang.org/genproto/googleapis/iam/v1"
31 import google_iam_v1 "google.golang.org/genproto/googleapis/iam/v1"
32 import google_longrunning "google.golang.org/genproto/googleapis/longrunning"
33 import google_protobuf2 "github.com/golang/protobuf/ptypes/empty"
34 import google_protobuf3 "github.com/golang/protobuf/ptypes/timestamp"
37 context "golang.org/x/net/context"
38 grpc "google.golang.org/grpc"
41 // Reference imports to suppress errors if they are not otherwise used.
46 // This is a compile-time assertion to ensure that this generated file
47 // is compatible with the proto package it is being compiled against.
48 // A compilation error at this line likely means your copy of the
49 // proto package needs to be updated.
50 const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
52 // Indicates the current state of the database.
53 type Database_State int32
57 Database_STATE_UNSPECIFIED Database_State = 0
58 // The database is still being created. Operations on the database may fail
59 // with `FAILED_PRECONDITION` in this state.
60 Database_CREATING Database_State = 1
61 // The database is fully created and ready for use.
62 Database_READY Database_State = 2
65 var Database_State_name = map[int32]string{
66 0: "STATE_UNSPECIFIED",
70 var Database_State_value = map[string]int32{
71 "STATE_UNSPECIFIED": 0,
76 func (x Database_State) String() string {
77 return proto.EnumName(Database_State_name, int32(x))
79 func (Database_State) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 0} }
81 // A Cloud Spanner database.
82 type Database struct {
83 // Required. The name of the database. Values are of the form
84 // `projects/<project>/instances/<instance>/databases/<database>`,
85 // where `<database>` is as specified in the `CREATE DATABASE`
86 // statement. This name can be passed to other API methods to
87 // identify the database.
88 Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
89 // Output only. The current database state.
90 State Database_State `protobuf:"varint,2,opt,name=state,enum=google.spanner.admin.database.v1.Database_State" json:"state,omitempty"`
93 func (m *Database) Reset() { *m = Database{} }
94 func (m *Database) String() string { return proto.CompactTextString(m) }
95 func (*Database) ProtoMessage() {}
96 func (*Database) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
98 func (m *Database) GetName() string {
105 func (m *Database) GetState() Database_State {
109 return Database_STATE_UNSPECIFIED
112 // The request for [ListDatabases][google.spanner.admin.database.v1.DatabaseAdmin.ListDatabases].
113 type ListDatabasesRequest struct {
114 // Required. The instance whose databases should be listed.
115 // Values are of the form `projects/<project>/instances/<instance>`.
116 Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
117 // Number of databases to be returned in the response. If 0 or less,
118 // defaults to the server's maximum allowed page size.
119 PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
120 // If non-empty, `page_token` should contain a
121 // [next_page_token][google.spanner.admin.database.v1.ListDatabasesResponse.next_page_token] from a
122 // previous [ListDatabasesResponse][google.spanner.admin.database.v1.ListDatabasesResponse].
123 PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
126 func (m *ListDatabasesRequest) Reset() { *m = ListDatabasesRequest{} }
127 func (m *ListDatabasesRequest) String() string { return proto.CompactTextString(m) }
128 func (*ListDatabasesRequest) ProtoMessage() {}
129 func (*ListDatabasesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
131 func (m *ListDatabasesRequest) GetParent() string {
138 func (m *ListDatabasesRequest) GetPageSize() int32 {
145 func (m *ListDatabasesRequest) GetPageToken() string {
152 // The response for [ListDatabases][google.spanner.admin.database.v1.DatabaseAdmin.ListDatabases].
153 type ListDatabasesResponse struct {
154 // Databases that matched the request.
155 Databases []*Database `protobuf:"bytes,1,rep,name=databases" json:"databases,omitempty"`
156 // `next_page_token` can be sent in a subsequent
157 // [ListDatabases][google.spanner.admin.database.v1.DatabaseAdmin.ListDatabases] call to fetch more
158 // of the matching databases.
159 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
162 func (m *ListDatabasesResponse) Reset() { *m = ListDatabasesResponse{} }
163 func (m *ListDatabasesResponse) String() string { return proto.CompactTextString(m) }
164 func (*ListDatabasesResponse) ProtoMessage() {}
165 func (*ListDatabasesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
167 func (m *ListDatabasesResponse) GetDatabases() []*Database {
174 func (m *ListDatabasesResponse) GetNextPageToken() string {
176 return m.NextPageToken
181 // The request for [CreateDatabase][google.spanner.admin.database.v1.DatabaseAdmin.CreateDatabase].
182 type CreateDatabaseRequest struct {
183 // Required. The name of the instance that will serve the new database.
184 // Values are of the form `projects/<project>/instances/<instance>`.
185 Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
186 // Required. A `CREATE DATABASE` statement, which specifies the ID of the
187 // new database. The database ID must conform to the regular expression
188 // `[a-z][a-z0-9_\-]*[a-z0-9]` and be between 2 and 30 characters in length.
189 CreateStatement string `protobuf:"bytes,2,opt,name=create_statement,json=createStatement" json:"create_statement,omitempty"`
190 // An optional list of DDL statements to run inside the newly created
191 // database. Statements can create tables, indexes, etc. These
192 // statements execute atomically with the creation of the database:
193 // if there is an error in any statement, the database is not created.
194 ExtraStatements []string `protobuf:"bytes,3,rep,name=extra_statements,json=extraStatements" json:"extra_statements,omitempty"`
197 func (m *CreateDatabaseRequest) Reset() { *m = CreateDatabaseRequest{} }
198 func (m *CreateDatabaseRequest) String() string { return proto.CompactTextString(m) }
199 func (*CreateDatabaseRequest) ProtoMessage() {}
200 func (*CreateDatabaseRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
202 func (m *CreateDatabaseRequest) GetParent() string {
209 func (m *CreateDatabaseRequest) GetCreateStatement() string {
211 return m.CreateStatement
216 func (m *CreateDatabaseRequest) GetExtraStatements() []string {
218 return m.ExtraStatements
223 // Metadata type for the operation returned by
224 // [CreateDatabase][google.spanner.admin.database.v1.DatabaseAdmin.CreateDatabase].
225 type CreateDatabaseMetadata struct {
226 // The database being created.
227 Database string `protobuf:"bytes,1,opt,name=database" json:"database,omitempty"`
230 func (m *CreateDatabaseMetadata) Reset() { *m = CreateDatabaseMetadata{} }
231 func (m *CreateDatabaseMetadata) String() string { return proto.CompactTextString(m) }
232 func (*CreateDatabaseMetadata) ProtoMessage() {}
233 func (*CreateDatabaseMetadata) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
235 func (m *CreateDatabaseMetadata) GetDatabase() string {
242 // The request for [GetDatabase][google.spanner.admin.database.v1.DatabaseAdmin.GetDatabase].
243 type GetDatabaseRequest struct {
244 // Required. The name of the requested database. Values are of the form
245 // `projects/<project>/instances/<instance>/databases/<database>`.
246 Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
249 func (m *GetDatabaseRequest) Reset() { *m = GetDatabaseRequest{} }
250 func (m *GetDatabaseRequest) String() string { return proto.CompactTextString(m) }
251 func (*GetDatabaseRequest) ProtoMessage() {}
252 func (*GetDatabaseRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
254 func (m *GetDatabaseRequest) GetName() string {
261 // Enqueues the given DDL statements to be applied, in order but not
262 // necessarily all at once, to the database schema at some point (or
263 // points) in the future. The server checks that the statements
264 // are executable (syntactically valid, name tables that exist, etc.)
265 // before enqueueing them, but they may still fail upon
266 // later execution (e.g., if a statement from another batch of
267 // statements is applied first and it conflicts in some way, or if
268 // there is some data-related problem like a `NULL` value in a column to
269 // which `NOT NULL` would be added). If a statement fails, all
270 // subsequent statements in the batch are automatically cancelled.
272 // Each batch of statements is assigned a name which can be used with
273 // the [Operations][google.longrunning.Operations] API to monitor
275 // [operation_id][google.spanner.admin.database.v1.UpdateDatabaseDdlRequest.operation_id] field for more
277 type UpdateDatabaseDdlRequest struct {
278 // Required. The database to update.
279 Database string `protobuf:"bytes,1,opt,name=database" json:"database,omitempty"`
280 // DDL statements to be applied to the database.
281 Statements []string `protobuf:"bytes,2,rep,name=statements" json:"statements,omitempty"`
282 // If empty, the new update request is assigned an
283 // automatically-generated operation ID. Otherwise, `operation_id`
284 // is used to construct the name of the resulting
285 // [Operation][google.longrunning.Operation].
287 // Specifying an explicit operation ID simplifies determining
288 // whether the statements were executed in the event that the
289 // [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] call is replayed,
290 // or the return value is otherwise lost: the [database][google.spanner.admin.database.v1.UpdateDatabaseDdlRequest.database] and
291 // `operation_id` fields can be combined to form the
292 // [name][google.longrunning.Operation.name] of the resulting
293 // [longrunning.Operation][google.longrunning.Operation]: `<database>/operations/<operation_id>`.
295 // `operation_id` should be unique within the database, and must be
296 // a valid identifier: `[a-z][a-z0-9_]*`. Note that
297 // automatically-generated operation IDs always begin with an
298 // underscore. If the named operation already exists,
299 // [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] returns
301 OperationId string `protobuf:"bytes,3,opt,name=operation_id,json=operationId" json:"operation_id,omitempty"`
304 func (m *UpdateDatabaseDdlRequest) Reset() { *m = UpdateDatabaseDdlRequest{} }
305 func (m *UpdateDatabaseDdlRequest) String() string { return proto.CompactTextString(m) }
306 func (*UpdateDatabaseDdlRequest) ProtoMessage() {}
307 func (*UpdateDatabaseDdlRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
309 func (m *UpdateDatabaseDdlRequest) GetDatabase() string {
316 func (m *UpdateDatabaseDdlRequest) GetStatements() []string {
323 func (m *UpdateDatabaseDdlRequest) GetOperationId() string {
330 // Metadata type for the operation returned by
331 // [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl].
332 type UpdateDatabaseDdlMetadata struct {
333 // The database being modified.
334 Database string `protobuf:"bytes,1,opt,name=database" json:"database,omitempty"`
335 // For an update this list contains all the statements. For an
336 // individual statement, this list contains only that statement.
337 Statements []string `protobuf:"bytes,2,rep,name=statements" json:"statements,omitempty"`
338 // Reports the commit timestamps of all statements that have
339 // succeeded so far, where `commit_timestamps[i]` is the commit
340 // timestamp for the statement `statements[i]`.
341 CommitTimestamps []*google_protobuf3.Timestamp `protobuf:"bytes,3,rep,name=commit_timestamps,json=commitTimestamps" json:"commit_timestamps,omitempty"`
344 func (m *UpdateDatabaseDdlMetadata) Reset() { *m = UpdateDatabaseDdlMetadata{} }
345 func (m *UpdateDatabaseDdlMetadata) String() string { return proto.CompactTextString(m) }
346 func (*UpdateDatabaseDdlMetadata) ProtoMessage() {}
347 func (*UpdateDatabaseDdlMetadata) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
349 func (m *UpdateDatabaseDdlMetadata) GetDatabase() string {
356 func (m *UpdateDatabaseDdlMetadata) GetStatements() []string {
363 func (m *UpdateDatabaseDdlMetadata) GetCommitTimestamps() []*google_protobuf3.Timestamp {
365 return m.CommitTimestamps
370 // The request for [DropDatabase][google.spanner.admin.database.v1.DatabaseAdmin.DropDatabase].
371 type DropDatabaseRequest struct {
372 // Required. The database to be dropped.
373 Database string `protobuf:"bytes,1,opt,name=database" json:"database,omitempty"`
376 func (m *DropDatabaseRequest) Reset() { *m = DropDatabaseRequest{} }
377 func (m *DropDatabaseRequest) String() string { return proto.CompactTextString(m) }
378 func (*DropDatabaseRequest) ProtoMessage() {}
379 func (*DropDatabaseRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
381 func (m *DropDatabaseRequest) GetDatabase() string {
388 // The request for [GetDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.GetDatabaseDdl].
389 type GetDatabaseDdlRequest struct {
390 // Required. The database whose schema we wish to get.
391 Database string `protobuf:"bytes,1,opt,name=database" json:"database,omitempty"`
394 func (m *GetDatabaseDdlRequest) Reset() { *m = GetDatabaseDdlRequest{} }
395 func (m *GetDatabaseDdlRequest) String() string { return proto.CompactTextString(m) }
396 func (*GetDatabaseDdlRequest) ProtoMessage() {}
397 func (*GetDatabaseDdlRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
399 func (m *GetDatabaseDdlRequest) GetDatabase() string {
406 // The response for [GetDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.GetDatabaseDdl].
407 type GetDatabaseDdlResponse struct {
408 // A list of formatted DDL statements defining the schema of the database
409 // specified in the request.
410 Statements []string `protobuf:"bytes,1,rep,name=statements" json:"statements,omitempty"`
413 func (m *GetDatabaseDdlResponse) Reset() { *m = GetDatabaseDdlResponse{} }
414 func (m *GetDatabaseDdlResponse) String() string { return proto.CompactTextString(m) }
415 func (*GetDatabaseDdlResponse) ProtoMessage() {}
416 func (*GetDatabaseDdlResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
418 func (m *GetDatabaseDdlResponse) GetStatements() []string {
426 proto.RegisterType((*Database)(nil), "google.spanner.admin.database.v1.Database")
427 proto.RegisterType((*ListDatabasesRequest)(nil), "google.spanner.admin.database.v1.ListDatabasesRequest")
428 proto.RegisterType((*ListDatabasesResponse)(nil), "google.spanner.admin.database.v1.ListDatabasesResponse")
429 proto.RegisterType((*CreateDatabaseRequest)(nil), "google.spanner.admin.database.v1.CreateDatabaseRequest")
430 proto.RegisterType((*CreateDatabaseMetadata)(nil), "google.spanner.admin.database.v1.CreateDatabaseMetadata")
431 proto.RegisterType((*GetDatabaseRequest)(nil), "google.spanner.admin.database.v1.GetDatabaseRequest")
432 proto.RegisterType((*UpdateDatabaseDdlRequest)(nil), "google.spanner.admin.database.v1.UpdateDatabaseDdlRequest")
433 proto.RegisterType((*UpdateDatabaseDdlMetadata)(nil), "google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata")
434 proto.RegisterType((*DropDatabaseRequest)(nil), "google.spanner.admin.database.v1.DropDatabaseRequest")
435 proto.RegisterType((*GetDatabaseDdlRequest)(nil), "google.spanner.admin.database.v1.GetDatabaseDdlRequest")
436 proto.RegisterType((*GetDatabaseDdlResponse)(nil), "google.spanner.admin.database.v1.GetDatabaseDdlResponse")
437 proto.RegisterEnum("google.spanner.admin.database.v1.Database_State", Database_State_name, Database_State_value)
440 // Reference imports to suppress errors if they are not otherwise used.
441 var _ context.Context
442 var _ grpc.ClientConn
444 // This is a compile-time assertion to ensure that this generated file
445 // is compatible with the grpc package it is being compiled against.
446 const _ = grpc.SupportPackageIsVersion4
448 // Client API for DatabaseAdmin service
450 type DatabaseAdminClient interface {
451 // Lists Cloud Spanner databases.
452 ListDatabases(ctx context.Context, in *ListDatabasesRequest, opts ...grpc.CallOption) (*ListDatabasesResponse, error)
453 // Creates a new Cloud Spanner database and starts to prepare it for serving.
454 // The returned [long-running operation][google.longrunning.Operation] will
455 // have a name of the format `<database_name>/operations/<operation_id>` and
456 // can be used to track preparation of the database. The
457 // [metadata][google.longrunning.Operation.metadata] field type is
458 // [CreateDatabaseMetadata][google.spanner.admin.database.v1.CreateDatabaseMetadata]. The
459 // [response][google.longrunning.Operation.response] field type is
460 // [Database][google.spanner.admin.database.v1.Database], if successful.
461 CreateDatabase(ctx context.Context, in *CreateDatabaseRequest, opts ...grpc.CallOption) (*google_longrunning.Operation, error)
462 // Gets the state of a Cloud Spanner database.
463 GetDatabase(ctx context.Context, in *GetDatabaseRequest, opts ...grpc.CallOption) (*Database, error)
464 // Updates the schema of a Cloud Spanner database by
465 // creating/altering/dropping tables, columns, indexes, etc. The returned
466 // [long-running operation][google.longrunning.Operation] will have a name of
467 // the format `<database_name>/operations/<operation_id>` and can be used to
468 // track execution of the schema change(s). The
469 // [metadata][google.longrunning.Operation.metadata] field type is
470 // [UpdateDatabaseDdlMetadata][google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata]. The operation has no response.
471 UpdateDatabaseDdl(ctx context.Context, in *UpdateDatabaseDdlRequest, opts ...grpc.CallOption) (*google_longrunning.Operation, error)
472 // Drops (aka deletes) a Cloud Spanner database.
473 DropDatabase(ctx context.Context, in *DropDatabaseRequest, opts ...grpc.CallOption) (*google_protobuf2.Empty, error)
474 // Returns the schema of a Cloud Spanner database as a list of formatted
475 // DDL statements. This method does not show pending schema updates, those may
476 // be queried using the [Operations][google.longrunning.Operations] API.
477 GetDatabaseDdl(ctx context.Context, in *GetDatabaseDdlRequest, opts ...grpc.CallOption) (*GetDatabaseDdlResponse, error)
478 // Sets the access control policy on a database resource. Replaces any
481 // Authorization requires `spanner.databases.setIamPolicy` permission on
482 // [resource][google.iam.v1.SetIamPolicyRequest.resource].
483 SetIamPolicy(ctx context.Context, in *google_iam_v11.SetIamPolicyRequest, opts ...grpc.CallOption) (*google_iam_v1.Policy, error)
484 // Gets the access control policy for a database resource. Returns an empty
485 // policy if a database exists but does not have a policy set.
487 // Authorization requires `spanner.databases.getIamPolicy` permission on
488 // [resource][google.iam.v1.GetIamPolicyRequest.resource].
489 GetIamPolicy(ctx context.Context, in *google_iam_v11.GetIamPolicyRequest, opts ...grpc.CallOption) (*google_iam_v1.Policy, error)
490 // Returns permissions that the caller has on the specified database resource.
492 // Attempting this RPC on a non-existent Cloud Spanner database will result in
493 // a NOT_FOUND error if the user has `spanner.databases.list` permission on
494 // the containing Cloud Spanner instance. Otherwise returns an empty set of
496 TestIamPermissions(ctx context.Context, in *google_iam_v11.TestIamPermissionsRequest, opts ...grpc.CallOption) (*google_iam_v11.TestIamPermissionsResponse, error)
499 type databaseAdminClient struct {
503 func NewDatabaseAdminClient(cc *grpc.ClientConn) DatabaseAdminClient {
504 return &databaseAdminClient{cc}
507 func (c *databaseAdminClient) ListDatabases(ctx context.Context, in *ListDatabasesRequest, opts ...grpc.CallOption) (*ListDatabasesResponse, error) {
508 out := new(ListDatabasesResponse)
509 err := grpc.Invoke(ctx, "/google.spanner.admin.database.v1.DatabaseAdmin/ListDatabases", in, out, c.cc, opts...)
516 func (c *databaseAdminClient) CreateDatabase(ctx context.Context, in *CreateDatabaseRequest, opts ...grpc.CallOption) (*google_longrunning.Operation, error) {
517 out := new(google_longrunning.Operation)
518 err := grpc.Invoke(ctx, "/google.spanner.admin.database.v1.DatabaseAdmin/CreateDatabase", in, out, c.cc, opts...)
525 func (c *databaseAdminClient) GetDatabase(ctx context.Context, in *GetDatabaseRequest, opts ...grpc.CallOption) (*Database, error) {
527 err := grpc.Invoke(ctx, "/google.spanner.admin.database.v1.DatabaseAdmin/GetDatabase", in, out, c.cc, opts...)
534 func (c *databaseAdminClient) UpdateDatabaseDdl(ctx context.Context, in *UpdateDatabaseDdlRequest, opts ...grpc.CallOption) (*google_longrunning.Operation, error) {
535 out := new(google_longrunning.Operation)
536 err := grpc.Invoke(ctx, "/google.spanner.admin.database.v1.DatabaseAdmin/UpdateDatabaseDdl", in, out, c.cc, opts...)
543 func (c *databaseAdminClient) DropDatabase(ctx context.Context, in *DropDatabaseRequest, opts ...grpc.CallOption) (*google_protobuf2.Empty, error) {
544 out := new(google_protobuf2.Empty)
545 err := grpc.Invoke(ctx, "/google.spanner.admin.database.v1.DatabaseAdmin/DropDatabase", in, out, c.cc, opts...)
552 func (c *databaseAdminClient) GetDatabaseDdl(ctx context.Context, in *GetDatabaseDdlRequest, opts ...grpc.CallOption) (*GetDatabaseDdlResponse, error) {
553 out := new(GetDatabaseDdlResponse)
554 err := grpc.Invoke(ctx, "/google.spanner.admin.database.v1.DatabaseAdmin/GetDatabaseDdl", in, out, c.cc, opts...)
561 func (c *databaseAdminClient) SetIamPolicy(ctx context.Context, in *google_iam_v11.SetIamPolicyRequest, opts ...grpc.CallOption) (*google_iam_v1.Policy, error) {
562 out := new(google_iam_v1.Policy)
563 err := grpc.Invoke(ctx, "/google.spanner.admin.database.v1.DatabaseAdmin/SetIamPolicy", in, out, c.cc, opts...)
570 func (c *databaseAdminClient) GetIamPolicy(ctx context.Context, in *google_iam_v11.GetIamPolicyRequest, opts ...grpc.CallOption) (*google_iam_v1.Policy, error) {
571 out := new(google_iam_v1.Policy)
572 err := grpc.Invoke(ctx, "/google.spanner.admin.database.v1.DatabaseAdmin/GetIamPolicy", in, out, c.cc, opts...)
579 func (c *databaseAdminClient) TestIamPermissions(ctx context.Context, in *google_iam_v11.TestIamPermissionsRequest, opts ...grpc.CallOption) (*google_iam_v11.TestIamPermissionsResponse, error) {
580 out := new(google_iam_v11.TestIamPermissionsResponse)
581 err := grpc.Invoke(ctx, "/google.spanner.admin.database.v1.DatabaseAdmin/TestIamPermissions", in, out, c.cc, opts...)
588 // Server API for DatabaseAdmin service
590 type DatabaseAdminServer interface {
591 // Lists Cloud Spanner databases.
592 ListDatabases(context.Context, *ListDatabasesRequest) (*ListDatabasesResponse, error)
593 // Creates a new Cloud Spanner database and starts to prepare it for serving.
594 // The returned [long-running operation][google.longrunning.Operation] will
595 // have a name of the format `<database_name>/operations/<operation_id>` and
596 // can be used to track preparation of the database. The
597 // [metadata][google.longrunning.Operation.metadata] field type is
598 // [CreateDatabaseMetadata][google.spanner.admin.database.v1.CreateDatabaseMetadata]. The
599 // [response][google.longrunning.Operation.response] field type is
600 // [Database][google.spanner.admin.database.v1.Database], if successful.
601 CreateDatabase(context.Context, *CreateDatabaseRequest) (*google_longrunning.Operation, error)
602 // Gets the state of a Cloud Spanner database.
603 GetDatabase(context.Context, *GetDatabaseRequest) (*Database, error)
604 // Updates the schema of a Cloud Spanner database by
605 // creating/altering/dropping tables, columns, indexes, etc. The returned
606 // [long-running operation][google.longrunning.Operation] will have a name of
607 // the format `<database_name>/operations/<operation_id>` and can be used to
608 // track execution of the schema change(s). The
609 // [metadata][google.longrunning.Operation.metadata] field type is
610 // [UpdateDatabaseDdlMetadata][google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata]. The operation has no response.
611 UpdateDatabaseDdl(context.Context, *UpdateDatabaseDdlRequest) (*google_longrunning.Operation, error)
612 // Drops (aka deletes) a Cloud Spanner database.
613 DropDatabase(context.Context, *DropDatabaseRequest) (*google_protobuf2.Empty, error)
614 // Returns the schema of a Cloud Spanner database as a list of formatted
615 // DDL statements. This method does not show pending schema updates, those may
616 // be queried using the [Operations][google.longrunning.Operations] API.
617 GetDatabaseDdl(context.Context, *GetDatabaseDdlRequest) (*GetDatabaseDdlResponse, error)
618 // Sets the access control policy on a database resource. Replaces any
621 // Authorization requires `spanner.databases.setIamPolicy` permission on
622 // [resource][google.iam.v1.SetIamPolicyRequest.resource].
623 SetIamPolicy(context.Context, *google_iam_v11.SetIamPolicyRequest) (*google_iam_v1.Policy, error)
624 // Gets the access control policy for a database resource. Returns an empty
625 // policy if a database exists but does not have a policy set.
627 // Authorization requires `spanner.databases.getIamPolicy` permission on
628 // [resource][google.iam.v1.GetIamPolicyRequest.resource].
629 GetIamPolicy(context.Context, *google_iam_v11.GetIamPolicyRequest) (*google_iam_v1.Policy, error)
630 // Returns permissions that the caller has on the specified database resource.
632 // Attempting this RPC on a non-existent Cloud Spanner database will result in
633 // a NOT_FOUND error if the user has `spanner.databases.list` permission on
634 // the containing Cloud Spanner instance. Otherwise returns an empty set of
636 TestIamPermissions(context.Context, *google_iam_v11.TestIamPermissionsRequest) (*google_iam_v11.TestIamPermissionsResponse, error)
639 func RegisterDatabaseAdminServer(s *grpc.Server, srv DatabaseAdminServer) {
640 s.RegisterService(&_DatabaseAdmin_serviceDesc, srv)
643 func _DatabaseAdmin_ListDatabases_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
644 in := new(ListDatabasesRequest)
645 if err := dec(in); err != nil {
648 if interceptor == nil {
649 return srv.(DatabaseAdminServer).ListDatabases(ctx, in)
651 info := &grpc.UnaryServerInfo{
653 FullMethod: "/google.spanner.admin.database.v1.DatabaseAdmin/ListDatabases",
655 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
656 return srv.(DatabaseAdminServer).ListDatabases(ctx, req.(*ListDatabasesRequest))
658 return interceptor(ctx, in, info, handler)
661 func _DatabaseAdmin_CreateDatabase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
662 in := new(CreateDatabaseRequest)
663 if err := dec(in); err != nil {
666 if interceptor == nil {
667 return srv.(DatabaseAdminServer).CreateDatabase(ctx, in)
669 info := &grpc.UnaryServerInfo{
671 FullMethod: "/google.spanner.admin.database.v1.DatabaseAdmin/CreateDatabase",
673 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
674 return srv.(DatabaseAdminServer).CreateDatabase(ctx, req.(*CreateDatabaseRequest))
676 return interceptor(ctx, in, info, handler)
679 func _DatabaseAdmin_GetDatabase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
680 in := new(GetDatabaseRequest)
681 if err := dec(in); err != nil {
684 if interceptor == nil {
685 return srv.(DatabaseAdminServer).GetDatabase(ctx, in)
687 info := &grpc.UnaryServerInfo{
689 FullMethod: "/google.spanner.admin.database.v1.DatabaseAdmin/GetDatabase",
691 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
692 return srv.(DatabaseAdminServer).GetDatabase(ctx, req.(*GetDatabaseRequest))
694 return interceptor(ctx, in, info, handler)
697 func _DatabaseAdmin_UpdateDatabaseDdl_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
698 in := new(UpdateDatabaseDdlRequest)
699 if err := dec(in); err != nil {
702 if interceptor == nil {
703 return srv.(DatabaseAdminServer).UpdateDatabaseDdl(ctx, in)
705 info := &grpc.UnaryServerInfo{
707 FullMethod: "/google.spanner.admin.database.v1.DatabaseAdmin/UpdateDatabaseDdl",
709 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
710 return srv.(DatabaseAdminServer).UpdateDatabaseDdl(ctx, req.(*UpdateDatabaseDdlRequest))
712 return interceptor(ctx, in, info, handler)
715 func _DatabaseAdmin_DropDatabase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
716 in := new(DropDatabaseRequest)
717 if err := dec(in); err != nil {
720 if interceptor == nil {
721 return srv.(DatabaseAdminServer).DropDatabase(ctx, in)
723 info := &grpc.UnaryServerInfo{
725 FullMethod: "/google.spanner.admin.database.v1.DatabaseAdmin/DropDatabase",
727 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
728 return srv.(DatabaseAdminServer).DropDatabase(ctx, req.(*DropDatabaseRequest))
730 return interceptor(ctx, in, info, handler)
733 func _DatabaseAdmin_GetDatabaseDdl_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
734 in := new(GetDatabaseDdlRequest)
735 if err := dec(in); err != nil {
738 if interceptor == nil {
739 return srv.(DatabaseAdminServer).GetDatabaseDdl(ctx, in)
741 info := &grpc.UnaryServerInfo{
743 FullMethod: "/google.spanner.admin.database.v1.DatabaseAdmin/GetDatabaseDdl",
745 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
746 return srv.(DatabaseAdminServer).GetDatabaseDdl(ctx, req.(*GetDatabaseDdlRequest))
748 return interceptor(ctx, in, info, handler)
751 func _DatabaseAdmin_SetIamPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
752 in := new(google_iam_v11.SetIamPolicyRequest)
753 if err := dec(in); err != nil {
756 if interceptor == nil {
757 return srv.(DatabaseAdminServer).SetIamPolicy(ctx, in)
759 info := &grpc.UnaryServerInfo{
761 FullMethod: "/google.spanner.admin.database.v1.DatabaseAdmin/SetIamPolicy",
763 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
764 return srv.(DatabaseAdminServer).SetIamPolicy(ctx, req.(*google_iam_v11.SetIamPolicyRequest))
766 return interceptor(ctx, in, info, handler)
769 func _DatabaseAdmin_GetIamPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
770 in := new(google_iam_v11.GetIamPolicyRequest)
771 if err := dec(in); err != nil {
774 if interceptor == nil {
775 return srv.(DatabaseAdminServer).GetIamPolicy(ctx, in)
777 info := &grpc.UnaryServerInfo{
779 FullMethod: "/google.spanner.admin.database.v1.DatabaseAdmin/GetIamPolicy",
781 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
782 return srv.(DatabaseAdminServer).GetIamPolicy(ctx, req.(*google_iam_v11.GetIamPolicyRequest))
784 return interceptor(ctx, in, info, handler)
787 func _DatabaseAdmin_TestIamPermissions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
788 in := new(google_iam_v11.TestIamPermissionsRequest)
789 if err := dec(in); err != nil {
792 if interceptor == nil {
793 return srv.(DatabaseAdminServer).TestIamPermissions(ctx, in)
795 info := &grpc.UnaryServerInfo{
797 FullMethod: "/google.spanner.admin.database.v1.DatabaseAdmin/TestIamPermissions",
799 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
800 return srv.(DatabaseAdminServer).TestIamPermissions(ctx, req.(*google_iam_v11.TestIamPermissionsRequest))
802 return interceptor(ctx, in, info, handler)
805 var _DatabaseAdmin_serviceDesc = grpc.ServiceDesc{
806 ServiceName: "google.spanner.admin.database.v1.DatabaseAdmin",
807 HandlerType: (*DatabaseAdminServer)(nil),
808 Methods: []grpc.MethodDesc{
810 MethodName: "ListDatabases",
811 Handler: _DatabaseAdmin_ListDatabases_Handler,
814 MethodName: "CreateDatabase",
815 Handler: _DatabaseAdmin_CreateDatabase_Handler,
818 MethodName: "GetDatabase",
819 Handler: _DatabaseAdmin_GetDatabase_Handler,
822 MethodName: "UpdateDatabaseDdl",
823 Handler: _DatabaseAdmin_UpdateDatabaseDdl_Handler,
826 MethodName: "DropDatabase",
827 Handler: _DatabaseAdmin_DropDatabase_Handler,
830 MethodName: "GetDatabaseDdl",
831 Handler: _DatabaseAdmin_GetDatabaseDdl_Handler,
834 MethodName: "SetIamPolicy",
835 Handler: _DatabaseAdmin_SetIamPolicy_Handler,
838 MethodName: "GetIamPolicy",
839 Handler: _DatabaseAdmin_GetIamPolicy_Handler,
842 MethodName: "TestIamPermissions",
843 Handler: _DatabaseAdmin_TestIamPermissions_Handler,
846 Streams: []grpc.StreamDesc{},
847 Metadata: "google/spanner/admin/database/v1/spanner_database_admin.proto",
851 proto.RegisterFile("google/spanner/admin/database/v1/spanner_database_admin.proto", fileDescriptor0)
854 var fileDescriptor0 = []byte{
855 // 1020 bytes of a gzipped FileDescriptorProto
856 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x96, 0x4d, 0x6f, 0x1b, 0x45,
857 0x18, 0xc7, 0x19, 0xa7, 0xa9, 0x92, 0x27, 0x2f, 0x4d, 0x06, 0x1c, 0xb9, 0x5b, 0x5a, 0xcc, 0x82,
858 0x2a, 0xd7, 0x12, 0xbb, 0xd8, 0x69, 0x48, 0x30, 0x0a, 0x22, 0xb5, 0x5d, 0xd7, 0x12, 0xb4, 0x96,
859 0xed, 0x22, 0xc1, 0xc5, 0x9a, 0xd8, 0xc3, 0xb2, 0xc5, 0xbb, 0xb3, 0xec, 0x8c, 0xab, 0xb6, 0xa8,
860 0x17, 0x24, 0x0e, 0x9c, 0x01, 0x89, 0x1b, 0x88, 0x03, 0x07, 0x4e, 0x9c, 0x40, 0xe2, 0xc8, 0x57,
861 0xe0, 0x2b, 0xf0, 0x41, 0xd0, 0xcc, 0xee, 0xd8, 0xeb, 0x75, 0x12, 0xdb, 0x1c, 0x7a, 0xf3, 0x3e,
862 0xaf, 0xbf, 0xe7, 0xd9, 0xf9, 0x8f, 0x17, 0x8e, 0x1d, 0xc6, 0x9c, 0x21, 0xb5, 0x79, 0x40, 0x7c,
863 0x9f, 0x86, 0x36, 0x19, 0x78, 0xae, 0x6f, 0x0f, 0x88, 0x20, 0xa7, 0x84, 0x53, 0xfb, 0x71, 0x49,
864 0x7b, 0x7a, 0xda, 0xd6, 0x53, 0x21, 0x56, 0x10, 0x32, 0xc1, 0x70, 0x3e, 0x4a, 0xb7, 0xe2, 0x20,
865 0x2b, 0xf2, 0xe9, 0x50, 0xeb, 0x71, 0xc9, 0x78, 0x35, 0x6e, 0x40, 0x02, 0xd7, 0x26, 0xbe, 0xcf,
866 0x04, 0x11, 0x2e, 0xf3, 0x79, 0x94, 0x6f, 0x64, 0x93, 0xde, 0x91, 0xf8, 0x3c, 0x36, 0xdf, 0x88,
867 0xcd, 0x2e, 0xf1, 0x24, 0x82, 0x4b, 0xbc, 0x5e, 0xc0, 0x86, 0x6e, 0xff, 0x69, 0xec, 0x37, 0xa6,
868 0xfd, 0x53, 0xbe, 0x37, 0x62, 0xdf, 0x90, 0xf9, 0x4e, 0x38, 0xf2, 0x7d, 0xd7, 0x77, 0x6c, 0x16,
869 0xd0, 0x70, 0xaa, 0xef, 0xb5, 0x38, 0x48, 0x3d, 0x9d, 0x8e, 0x3e, 0xb3, 0xa9, 0x17, 0x08, 0x5d,
870 0xe1, 0xb5, 0xb4, 0x53, 0xb8, 0x1e, 0xe5, 0x82, 0x78, 0x41, 0x14, 0x60, 0xfe, 0x84, 0x60, 0xad,
871 0x16, 0xcf, 0x88, 0x31, 0x5c, 0xf2, 0x89, 0x47, 0x73, 0x28, 0x8f, 0x0a, 0xeb, 0x6d, 0xf5, 0x1b,
872 0xdf, 0x85, 0x55, 0x2e, 0x88, 0xa0, 0xb9, 0x4c, 0x1e, 0x15, 0xb6, 0xcb, 0x6f, 0x5b, 0xf3, 0xd6,
873 0x64, 0xe9, 0x72, 0x56, 0x47, 0xe6, 0xb5, 0xa3, 0x74, 0xf3, 0x10, 0x56, 0xd5, 0x33, 0xce, 0xc2,
874 0x6e, 0xa7, 0x7b, 0xd2, 0xad, 0xf7, 0x1e, 0xde, 0xef, 0xb4, 0xea, 0xd5, 0xe6, 0xdd, 0x66, 0xbd,
875 0xb6, 0xf3, 0x12, 0xde, 0x84, 0xb5, 0x6a, 0xbb, 0x7e, 0xd2, 0x6d, 0xde, 0x6f, 0xec, 0x20, 0xbc,
876 0x0e, 0xab, 0xed, 0xfa, 0x49, 0xed, 0x93, 0x9d, 0x8c, 0xf9, 0x08, 0x5e, 0xf9, 0xd0, 0xe5, 0x42,
877 0x57, 0xe5, 0x6d, 0xfa, 0xe5, 0x88, 0x72, 0x81, 0xf7, 0xe0, 0x72, 0x40, 0x42, 0xea, 0x8b, 0x18,
878 0x37, 0x7e, 0xc2, 0xd7, 0x60, 0x3d, 0x20, 0x0e, 0xed, 0x71, 0xf7, 0x19, 0xcd, 0xad, 0xe4, 0x51,
879 0x61, 0xb5, 0xbd, 0x26, 0x0d, 0x1d, 0xf7, 0x19, 0xc5, 0xd7, 0x01, 0x94, 0x53, 0xb0, 0x2f, 0xa8,
880 0x9f, 0xbb, 0xa4, 0x12, 0x55, 0x78, 0x57, 0x1a, 0xcc, 0x6f, 0x11, 0x64, 0x53, 0xcd, 0x78, 0xc0,
881 0x7c, 0x4e, 0xf1, 0x3d, 0x58, 0xd7, 0x33, 0xf2, 0x1c, 0xca, 0xaf, 0x14, 0x36, 0xca, 0xc5, 0xc5,
882 0x57, 0xd1, 0x9e, 0x24, 0xe3, 0x9b, 0x70, 0xc5, 0xa7, 0x4f, 0x44, 0x2f, 0xc1, 0x91, 0x51, 0x1c,
883 0x5b, 0xd2, 0xdc, 0x1a, 0xb3, 0x7c, 0x83, 0x20, 0x5b, 0x0d, 0x29, 0x11, 0x74, 0x5c, 0x65, 0xce,
884 0xe4, 0xb7, 0x60, 0xa7, 0xaf, 0x12, 0x7a, 0x6a, 0xe5, 0x9e, 0x8c, 0x88, 0x4a, 0x5f, 0x89, 0xec,
885 0x1d, 0x6d, 0x96, 0xa1, 0xf4, 0x89, 0x08, 0xc9, 0x24, 0x92, 0xe7, 0x56, 0xf2, 0x2b, 0x32, 0x54,
886 0xd9, 0xc7, 0x91, 0xdc, 0xbc, 0x0d, 0x7b, 0xd3, 0x18, 0x1f, 0x51, 0x41, 0xe4, 0x38, 0xd8, 0x80,
887 0x35, 0x3d, 0x56, 0x4c, 0x32, 0x7e, 0x36, 0x0b, 0x80, 0x1b, 0x54, 0xa4, 0xc9, 0xcf, 0x38, 0x60,
888 0xe6, 0x53, 0xc8, 0x3d, 0x0c, 0x06, 0x89, 0xfa, 0xb5, 0xc1, 0x50, 0xc7, 0x5f, 0xd0, 0x01, 0xdf,
889 0x00, 0x48, 0xc0, 0x67, 0x14, 0x7c, 0xc2, 0x82, 0x5f, 0x87, 0xcd, 0xb1, 0x56, 0x7a, 0xee, 0x40,
890 0x1d, 0x85, 0xf5, 0xf6, 0xc6, 0xd8, 0xd6, 0x1c, 0x98, 0x3f, 0x23, 0xb8, 0x3a, 0xd3, 0x7b, 0x91,
891 0xf1, 0xe6, 0x36, 0x6f, 0xc0, 0x6e, 0x9f, 0x79, 0x9e, 0x2b, 0x7a, 0x63, 0xc1, 0x45, 0x0b, 0xde,
892 0x28, 0x1b, 0xfa, 0xd8, 0x68, 0x4d, 0x5a, 0x5d, 0x1d, 0xd2, 0xde, 0x89, 0x92, 0xc6, 0x06, 0x6e,
893 0x96, 0xe0, 0xe5, 0x5a, 0xc8, 0x82, 0xf4, 0x22, 0x2f, 0x5a, 0xfd, 0x3e, 0x64, 0x13, 0xab, 0x5f,
894 0x6c, 0x9b, 0xe6, 0x11, 0xec, 0xa5, 0x93, 0xe2, 0x93, 0x3f, 0x3d, 0x2a, 0x4a, 0x8f, 0x5a, 0xfe,
895 0x61, 0x13, 0xb6, 0x74, 0xde, 0x89, 0x54, 0x00, 0xfe, 0x13, 0xc1, 0xd6, 0x94, 0x8a, 0xf0, 0x3b,
896 0xf3, 0xa5, 0x72, 0x96, 0xc6, 0x8d, 0xc3, 0xa5, 0xf3, 0x22, 0x68, 0xf3, 0xe0, 0xeb, 0x7f, 0xfe,
897 0xfd, 0x2e, 0x63, 0xe3, 0xb7, 0xe4, 0x9d, 0xfa, 0x55, 0xa4, 0x8f, 0xe3, 0x20, 0x64, 0x8f, 0x68,
898 0x5f, 0x70, 0xbb, 0x68, 0xbb, 0x3e, 0x17, 0xc4, 0xef, 0x53, 0x6e, 0x17, 0x9f, 0xdb, 0x13, 0x6d,
899 0xfe, 0x82, 0x60, 0x7b, 0xfa, 0xb0, 0xe3, 0x05, 0x10, 0xce, 0x54, 0xa9, 0x71, 0x5d, 0x27, 0x26,
900 0x6e, 0x6f, 0xeb, 0x81, 0x3e, 0x7d, 0xe6, 0x91, 0x22, 0x2c, 0x9b, 0xcb, 0x11, 0x56, 0x50, 0x11,
901 0xff, 0x8a, 0x60, 0x23, 0xf1, 0xae, 0xf0, 0xed, 0xf9, 0x84, 0xb3, 0x52, 0x34, 0x96, 0xb8, 0xbd,
902 0x52, 0xdb, 0x94, 0xaa, 0x3d, 0x87, 0x74, 0x02, 0x6a, 0x17, 0x9f, 0xe3, 0xdf, 0x11, 0xec, 0xce,
903 0xc8, 0x0b, 0x57, 0xe6, 0x37, 0x3e, 0xef, 0x3e, 0x98, 0xb7, 0xd3, 0x0f, 0x14, 0x67, 0xa5, 0x7c,
904 0xa0, 0x38, 0x75, 0xc5, 0x45, 0x58, 0xed, 0xc1, 0x60, 0x28, 0x77, 0xfb, 0x23, 0x82, 0xcd, 0xa4,
905 0xde, 0xf0, 0xc1, 0x02, 0x6b, 0x9a, 0xd5, 0xa7, 0xb1, 0x37, 0x23, 0xf2, 0xba, 0xfc, 0x57, 0x36,
906 0xdf, 0x55, 0x84, 0xfb, 0xc5, 0xd2, 0xd2, 0x84, 0xf8, 0x6f, 0x04, 0xdb, 0xd3, 0x12, 0x5d, 0xe4,
907 0x6c, 0x9e, 0x79, 0x13, 0x18, 0x47, 0xcb, 0x27, 0xc6, 0xc2, 0x3a, 0x56, 0x03, 0x1c, 0xe2, 0xff,
908 0xb7, 0x62, 0xfc, 0x3d, 0x82, 0xcd, 0x0e, 0x15, 0x4d, 0xe2, 0xb5, 0xd4, 0x87, 0x0e, 0x36, 0x35,
909 0x89, 0x4b, 0x3c, 0xd9, 0x36, 0xe9, 0xd4, 0xb4, 0xd9, 0x54, 0x4c, 0xe4, 0x35, 0x9b, 0x0a, 0xa5,
910 0x6a, 0xbe, 0xaf, 0x50, 0x42, 0xca, 0xd9, 0x28, 0xec, 0x2f, 0x84, 0x52, 0xe1, 0x89, 0x2e, 0xf2,
911 0xb5, 0x4b, 0xac, 0xc6, 0x45, 0x58, 0x8d, 0x17, 0x82, 0xe5, 0xa4, 0xb0, 0xfe, 0x42, 0x80, 0xbb,
912 0x94, 0x2b, 0x23, 0x0d, 0x3d, 0x97, 0x73, 0xf9, 0xdd, 0x87, 0x0b, 0xa9, 0xc6, 0xb3, 0x21, 0x1a,
913 0xf1, 0xd6, 0x02, 0x91, 0xf1, 0x8b, 0x7d, 0xa0, 0xb0, 0x9b, 0x66, 0x6d, 0x79, 0x6c, 0x31, 0x53,
914 0xb5, 0x82, 0x8a, 0x77, 0xfe, 0x40, 0xf0, 0x66, 0x9f, 0x79, 0x73, 0x4f, 0xda, 0x9d, 0xab, 0x9d,
915 0xc8, 0x35, 0xf5, 0x27, 0xd2, 0x92, 0xba, 0x69, 0xa1, 0x4f, 0xef, 0xc5, 0xe9, 0x0e, 0x1b, 0x12,
916 0xdf, 0xb1, 0x58, 0xe8, 0xd8, 0x0e, 0xf5, 0x95, 0xaa, 0xec, 0xc8, 0x45, 0x02, 0x97, 0x9f, 0xff,
917 0xcd, 0xff, 0x9e, 0xfe, 0xfd, 0x5b, 0xe6, 0x66, 0x23, 0x2a, 0x55, 0x1d, 0xb2, 0xd1, 0xc0, 0x8a,
918 0x9b, 0x5a, 0xaa, 0xdb, 0xe4, 0x9b, 0xf5, 0xe3, 0xd2, 0xe9, 0x65, 0x55, 0x7d, 0xff, 0xbf, 0x00,
919 0x00, 0x00, 0xff, 0xff, 0xdc, 0xc4, 0xc8, 0x83, 0x50, 0x0c, 0x00, 0x00,