1// Code generated by protoc-gen-go. DO NOT EDIT.
2// source: google/cloud/resourcemanager/v2/folders.proto
3
4package resourcemanager // import "google.golang.org/genproto/googleapis/cloud/resourcemanager/v2"
5
6import proto "github.com/golang/protobuf/proto"
7import fmt "fmt"
8import math "math"
9import timestamp "github.com/golang/protobuf/ptypes/timestamp"
10import _ "google.golang.org/genproto/googleapis/api/annotations"
11import v1 "google.golang.org/genproto/googleapis/iam/v1"
12import longrunning "google.golang.org/genproto/googleapis/longrunning"
13import field_mask "google.golang.org/genproto/protobuf/field_mask"
14
15import (
16	context "golang.org/x/net/context"
17	grpc "google.golang.org/grpc"
18)
19
20// Reference imports to suppress errors if they are not otherwise used.
21var _ = proto.Marshal
22var _ = fmt.Errorf
23var _ = math.Inf
24
25// This is a compile-time assertion to ensure that this generated file
26// is compatible with the proto package it is being compiled against.
27// A compilation error at this line likely means your copy of the
28// proto package needs to be updated.
29const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
30
31// Folder lifecycle states.
32type Folder_LifecycleState int32
33
34const (
35	// Unspecified state.
36	Folder_LIFECYCLE_STATE_UNSPECIFIED Folder_LifecycleState = 0
37	// The normal and active state.
38	Folder_ACTIVE Folder_LifecycleState = 1
39	// The folder has been marked for deletion by the user.
40	Folder_DELETE_REQUESTED Folder_LifecycleState = 2
41)
42
43var Folder_LifecycleState_name = map[int32]string{
44	0: "LIFECYCLE_STATE_UNSPECIFIED",
45	1: "ACTIVE",
46	2: "DELETE_REQUESTED",
47}
48var Folder_LifecycleState_value = map[string]int32{
49	"LIFECYCLE_STATE_UNSPECIFIED": 0,
50	"ACTIVE":                      1,
51	"DELETE_REQUESTED":            2,
52}
53
54func (x Folder_LifecycleState) String() string {
55	return proto.EnumName(Folder_LifecycleState_name, int32(x))
56}
57func (Folder_LifecycleState) EnumDescriptor() ([]byte, []int) {
58	return fileDescriptor_folders_6f2b72803211c511, []int{0, 0}
59}
60
61// The type of operation that failed.
62type FolderOperation_OperationType int32
63
64const (
65	// Operation type not specified.
66	FolderOperation_OPERATION_TYPE_UNSPECIFIED FolderOperation_OperationType = 0
67	// A create folder operation.
68	FolderOperation_CREATE FolderOperation_OperationType = 1
69	// A move folder operation.
70	FolderOperation_MOVE FolderOperation_OperationType = 2
71)
72
73var FolderOperation_OperationType_name = map[int32]string{
74	0: "OPERATION_TYPE_UNSPECIFIED",
75	1: "CREATE",
76	2: "MOVE",
77}
78var FolderOperation_OperationType_value = map[string]int32{
79	"OPERATION_TYPE_UNSPECIFIED": 0,
80	"CREATE":                     1,
81	"MOVE":                       2,
82}
83
84func (x FolderOperation_OperationType) String() string {
85	return proto.EnumName(FolderOperation_OperationType_name, int32(x))
86}
87func (FolderOperation_OperationType) EnumDescriptor() ([]byte, []int) {
88	return fileDescriptor_folders_6f2b72803211c511, []int{11, 0}
89}
90
91// A Folder in an Organization's resource hierarchy, used to
92// organize that Organization's resources.
93type Folder struct {
94	// Output only. The resource name of the Folder.
95	// Its format is `folders/{folder_id}`, for example: "folders/1234".
96	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
97	// The Folder’s parent's resource name.
98	// Updates to the folder's parent must be performed via [MoveFolders].
99	Parent string `protobuf:"bytes,2,opt,name=parent,proto3" json:"parent,omitempty"`
100	// The folder’s display name.
101	// A folder’s display name must be unique amongst its siblings, e.g.
102	// no two folders with the same parent can share the same display name.
103	// The display name must start and end with a letter or digit, may contain
104	// letters, digits, spaces, hyphens and underscores and can be no longer
105	// than 30 characters. This is captured by the regular expression:
106	// [\p{L}\p{N}]({\p{L}\p{N}_- ]{0,28}[\p{L}\p{N}])?.
107	DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
108	// Output only.  The lifecycle state of the folder.
109	// Updates to the lifecycle_state must be performed via
110	// [DeleteFolder] and [UndeleteFolder].
111	LifecycleState Folder_LifecycleState `protobuf:"varint,4,opt,name=lifecycle_state,json=lifecycleState,proto3,enum=google.cloud.resourcemanager.v2.Folder_LifecycleState" json:"lifecycle_state,omitempty"`
112	// Output only. Timestamp when the Folder was created. Assigned by the server.
113	CreateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
114	// Output only. Timestamp when the Folder was last modified.
115	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,6,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
116	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
117	XXX_unrecognized     []byte               `json:"-"`
118	XXX_sizecache        int32                `json:"-"`
119}
120
121func (m *Folder) Reset()         { *m = Folder{} }
122func (m *Folder) String() string { return proto.CompactTextString(m) }
123func (*Folder) ProtoMessage()    {}
124func (*Folder) Descriptor() ([]byte, []int) {
125	return fileDescriptor_folders_6f2b72803211c511, []int{0}
126}
127func (m *Folder) XXX_Unmarshal(b []byte) error {
128	return xxx_messageInfo_Folder.Unmarshal(m, b)
129}
130func (m *Folder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
131	return xxx_messageInfo_Folder.Marshal(b, m, deterministic)
132}
133func (dst *Folder) XXX_Merge(src proto.Message) {
134	xxx_messageInfo_Folder.Merge(dst, src)
135}
136func (m *Folder) XXX_Size() int {
137	return xxx_messageInfo_Folder.Size(m)
138}
139func (m *Folder) XXX_DiscardUnknown() {
140	xxx_messageInfo_Folder.DiscardUnknown(m)
141}
142
143var xxx_messageInfo_Folder proto.InternalMessageInfo
144
145func (m *Folder) GetName() string {
146	if m != nil {
147		return m.Name
148	}
149	return ""
150}
151
152func (m *Folder) GetParent() string {
153	if m != nil {
154		return m.Parent
155	}
156	return ""
157}
158
159func (m *Folder) GetDisplayName() string {
160	if m != nil {
161		return m.DisplayName
162	}
163	return ""
164}
165
166func (m *Folder) GetLifecycleState() Folder_LifecycleState {
167	if m != nil {
168		return m.LifecycleState
169	}
170	return Folder_LIFECYCLE_STATE_UNSPECIFIED
171}
172
173func (m *Folder) GetCreateTime() *timestamp.Timestamp {
174	if m != nil {
175		return m.CreateTime
176	}
177	return nil
178}
179
180func (m *Folder) GetUpdateTime() *timestamp.Timestamp {
181	if m != nil {
182		return m.UpdateTime
183	}
184	return nil
185}
186
187// The ListFolders request message.
188type ListFoldersRequest struct {
189	// The resource name of the Organization or Folder whose Folders are
190	// being listed.
191	// Must be of the form `folders/{folder_id}` or `organizations/{org_id}`.
192	// Access to this method is controlled by checking the
193	// `resourcemanager.folders.list` permission on the `parent`.
194	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
195	// The maximum number of Folders to return in the response.
196	// This field is optional.
197	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
198	// A pagination token returned from a previous call to `ListFolders`
199	// that indicates where this listing should continue from.
200	// This field is optional.
201	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
202	// Controls whether Folders in the [DELETE_REQUESTED} state should
203	// be returned.
204	ShowDeleted          bool     `protobuf:"varint,4,opt,name=show_deleted,json=showDeleted,proto3" json:"show_deleted,omitempty"`
205	XXX_NoUnkeyedLiteral struct{} `json:"-"`
206	XXX_unrecognized     []byte   `json:"-"`
207	XXX_sizecache        int32    `json:"-"`
208}
209
210func (m *ListFoldersRequest) Reset()         { *m = ListFoldersRequest{} }
211func (m *ListFoldersRequest) String() string { return proto.CompactTextString(m) }
212func (*ListFoldersRequest) ProtoMessage()    {}
213func (*ListFoldersRequest) Descriptor() ([]byte, []int) {
214	return fileDescriptor_folders_6f2b72803211c511, []int{1}
215}
216func (m *ListFoldersRequest) XXX_Unmarshal(b []byte) error {
217	return xxx_messageInfo_ListFoldersRequest.Unmarshal(m, b)
218}
219func (m *ListFoldersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
220	return xxx_messageInfo_ListFoldersRequest.Marshal(b, m, deterministic)
221}
222func (dst *ListFoldersRequest) XXX_Merge(src proto.Message) {
223	xxx_messageInfo_ListFoldersRequest.Merge(dst, src)
224}
225func (m *ListFoldersRequest) XXX_Size() int {
226	return xxx_messageInfo_ListFoldersRequest.Size(m)
227}
228func (m *ListFoldersRequest) XXX_DiscardUnknown() {
229	xxx_messageInfo_ListFoldersRequest.DiscardUnknown(m)
230}
231
232var xxx_messageInfo_ListFoldersRequest proto.InternalMessageInfo
233
234func (m *ListFoldersRequest) GetParent() string {
235	if m != nil {
236		return m.Parent
237	}
238	return ""
239}
240
241func (m *ListFoldersRequest) GetPageSize() int32 {
242	if m != nil {
243		return m.PageSize
244	}
245	return 0
246}
247
248func (m *ListFoldersRequest) GetPageToken() string {
249	if m != nil {
250		return m.PageToken
251	}
252	return ""
253}
254
255func (m *ListFoldersRequest) GetShowDeleted() bool {
256	if m != nil {
257		return m.ShowDeleted
258	}
259	return false
260}
261
262// The ListFolders response message.
263type ListFoldersResponse struct {
264	// A possibly paginated list of Folders that are direct descendants of
265	// the specified parent resource.
266	Folders []*Folder `protobuf:"bytes,1,rep,name=folders,proto3" json:"folders,omitempty"`
267	// A pagination token returned from a previous call to `ListFolders`
268	// that indicates from where listing should continue.
269	// This field is optional.
270	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
271	XXX_NoUnkeyedLiteral struct{} `json:"-"`
272	XXX_unrecognized     []byte   `json:"-"`
273	XXX_sizecache        int32    `json:"-"`
274}
275
276func (m *ListFoldersResponse) Reset()         { *m = ListFoldersResponse{} }
277func (m *ListFoldersResponse) String() string { return proto.CompactTextString(m) }
278func (*ListFoldersResponse) ProtoMessage()    {}
279func (*ListFoldersResponse) Descriptor() ([]byte, []int) {
280	return fileDescriptor_folders_6f2b72803211c511, []int{2}
281}
282func (m *ListFoldersResponse) XXX_Unmarshal(b []byte) error {
283	return xxx_messageInfo_ListFoldersResponse.Unmarshal(m, b)
284}
285func (m *ListFoldersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
286	return xxx_messageInfo_ListFoldersResponse.Marshal(b, m, deterministic)
287}
288func (dst *ListFoldersResponse) XXX_Merge(src proto.Message) {
289	xxx_messageInfo_ListFoldersResponse.Merge(dst, src)
290}
291func (m *ListFoldersResponse) XXX_Size() int {
292	return xxx_messageInfo_ListFoldersResponse.Size(m)
293}
294func (m *ListFoldersResponse) XXX_DiscardUnknown() {
295	xxx_messageInfo_ListFoldersResponse.DiscardUnknown(m)
296}
297
298var xxx_messageInfo_ListFoldersResponse proto.InternalMessageInfo
299
300func (m *ListFoldersResponse) GetFolders() []*Folder {
301	if m != nil {
302		return m.Folders
303	}
304	return nil
305}
306
307func (m *ListFoldersResponse) GetNextPageToken() string {
308	if m != nil {
309		return m.NextPageToken
310	}
311	return ""
312}
313
314// The request message for searching folders.
315type SearchFoldersRequest struct {
316	// The maximum number of folders to return in the response.
317	// This field is optional.
318	PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
319	// A pagination token returned from a previous call to `SearchFolders`
320	// that indicates from where search should continue.
321	// This field is optional.
322	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
323	// Search criteria used to select the Folders to return.
324	// If no search criteria is specified then all accessible folders will be
325	// returned.
326	//
327	// Query expressions can be used to restrict results based upon displayName,
328	// lifecycleState and parent, where the operators `=`, `NOT`, `AND` and `OR`
329	// can be used along with the suffix wildcard symbol `*`.
330	//
331	// Some example queries are:
332	// |Query|Description|
333	// |------|-----------|
334	// |displayName=Test*|Folders whose display name starts with "Test".|
335	// |lifecycleState=ACTIVE|Folders whose lifecycleState is ACTIVE.|
336	// |parent=folders/123|Folders whose parent is "folders/123".|
337	// |parent=folders/123 AND lifecycleState=ACTIVE|Active folders whose
338	// parent is "folders/123".|
339	Query                string   `protobuf:"bytes,3,opt,name=query,proto3" json:"query,omitempty"`
340	XXX_NoUnkeyedLiteral struct{} `json:"-"`
341	XXX_unrecognized     []byte   `json:"-"`
342	XXX_sizecache        int32    `json:"-"`
343}
344
345func (m *SearchFoldersRequest) Reset()         { *m = SearchFoldersRequest{} }
346func (m *SearchFoldersRequest) String() string { return proto.CompactTextString(m) }
347func (*SearchFoldersRequest) ProtoMessage()    {}
348func (*SearchFoldersRequest) Descriptor() ([]byte, []int) {
349	return fileDescriptor_folders_6f2b72803211c511, []int{3}
350}
351func (m *SearchFoldersRequest) XXX_Unmarshal(b []byte) error {
352	return xxx_messageInfo_SearchFoldersRequest.Unmarshal(m, b)
353}
354func (m *SearchFoldersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
355	return xxx_messageInfo_SearchFoldersRequest.Marshal(b, m, deterministic)
356}
357func (dst *SearchFoldersRequest) XXX_Merge(src proto.Message) {
358	xxx_messageInfo_SearchFoldersRequest.Merge(dst, src)
359}
360func (m *SearchFoldersRequest) XXX_Size() int {
361	return xxx_messageInfo_SearchFoldersRequest.Size(m)
362}
363func (m *SearchFoldersRequest) XXX_DiscardUnknown() {
364	xxx_messageInfo_SearchFoldersRequest.DiscardUnknown(m)
365}
366
367var xxx_messageInfo_SearchFoldersRequest proto.InternalMessageInfo
368
369func (m *SearchFoldersRequest) GetPageSize() int32 {
370	if m != nil {
371		return m.PageSize
372	}
373	return 0
374}
375
376func (m *SearchFoldersRequest) GetPageToken() string {
377	if m != nil {
378		return m.PageToken
379	}
380	return ""
381}
382
383func (m *SearchFoldersRequest) GetQuery() string {
384	if m != nil {
385		return m.Query
386	}
387	return ""
388}
389
390// The response message for searching folders.
391type SearchFoldersResponse struct {
392	// A possibly paginated folder search results.
393	// the specified parent resource.
394	Folders []*Folder `protobuf:"bytes,1,rep,name=folders,proto3" json:"folders,omitempty"`
395	// A pagination token returned from a previous call to `SearchFolders`
396	// that indicates from where searching should continue.
397	// This field is optional.
398	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
399	XXX_NoUnkeyedLiteral struct{} `json:"-"`
400	XXX_unrecognized     []byte   `json:"-"`
401	XXX_sizecache        int32    `json:"-"`
402}
403
404func (m *SearchFoldersResponse) Reset()         { *m = SearchFoldersResponse{} }
405func (m *SearchFoldersResponse) String() string { return proto.CompactTextString(m) }
406func (*SearchFoldersResponse) ProtoMessage()    {}
407func (*SearchFoldersResponse) Descriptor() ([]byte, []int) {
408	return fileDescriptor_folders_6f2b72803211c511, []int{4}
409}
410func (m *SearchFoldersResponse) XXX_Unmarshal(b []byte) error {
411	return xxx_messageInfo_SearchFoldersResponse.Unmarshal(m, b)
412}
413func (m *SearchFoldersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
414	return xxx_messageInfo_SearchFoldersResponse.Marshal(b, m, deterministic)
415}
416func (dst *SearchFoldersResponse) XXX_Merge(src proto.Message) {
417	xxx_messageInfo_SearchFoldersResponse.Merge(dst, src)
418}
419func (m *SearchFoldersResponse) XXX_Size() int {
420	return xxx_messageInfo_SearchFoldersResponse.Size(m)
421}
422func (m *SearchFoldersResponse) XXX_DiscardUnknown() {
423	xxx_messageInfo_SearchFoldersResponse.DiscardUnknown(m)
424}
425
426var xxx_messageInfo_SearchFoldersResponse proto.InternalMessageInfo
427
428func (m *SearchFoldersResponse) GetFolders() []*Folder {
429	if m != nil {
430		return m.Folders
431	}
432	return nil
433}
434
435func (m *SearchFoldersResponse) GetNextPageToken() string {
436	if m != nil {
437		return m.NextPageToken
438	}
439	return ""
440}
441
442// The GetFolder request message.
443type GetFolderRequest struct {
444	// The resource name of the Folder to retrieve.
445	// Must be of the form `folders/{folder_id}`.
446	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
447	XXX_NoUnkeyedLiteral struct{} `json:"-"`
448	XXX_unrecognized     []byte   `json:"-"`
449	XXX_sizecache        int32    `json:"-"`
450}
451
452func (m *GetFolderRequest) Reset()         { *m = GetFolderRequest{} }
453func (m *GetFolderRequest) String() string { return proto.CompactTextString(m) }
454func (*GetFolderRequest) ProtoMessage()    {}
455func (*GetFolderRequest) Descriptor() ([]byte, []int) {
456	return fileDescriptor_folders_6f2b72803211c511, []int{5}
457}
458func (m *GetFolderRequest) XXX_Unmarshal(b []byte) error {
459	return xxx_messageInfo_GetFolderRequest.Unmarshal(m, b)
460}
461func (m *GetFolderRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
462	return xxx_messageInfo_GetFolderRequest.Marshal(b, m, deterministic)
463}
464func (dst *GetFolderRequest) XXX_Merge(src proto.Message) {
465	xxx_messageInfo_GetFolderRequest.Merge(dst, src)
466}
467func (m *GetFolderRequest) XXX_Size() int {
468	return xxx_messageInfo_GetFolderRequest.Size(m)
469}
470func (m *GetFolderRequest) XXX_DiscardUnknown() {
471	xxx_messageInfo_GetFolderRequest.DiscardUnknown(m)
472}
473
474var xxx_messageInfo_GetFolderRequest proto.InternalMessageInfo
475
476func (m *GetFolderRequest) GetName() string {
477	if m != nil {
478		return m.Name
479	}
480	return ""
481}
482
483// The CreateFolder request message.
484type CreateFolderRequest struct {
485	// The resource name of the new Folder's parent.
486	// Must be of the form `folders/{folder_id}` or `organizations/{org_id}`.
487	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
488	// The Folder being created, only the display name will be consulted.
489	// All other fields will be ignored.
490	Folder               *Folder  `protobuf:"bytes,2,opt,name=folder,proto3" json:"folder,omitempty"`
491	XXX_NoUnkeyedLiteral struct{} `json:"-"`
492	XXX_unrecognized     []byte   `json:"-"`
493	XXX_sizecache        int32    `json:"-"`
494}
495
496func (m *CreateFolderRequest) Reset()         { *m = CreateFolderRequest{} }
497func (m *CreateFolderRequest) String() string { return proto.CompactTextString(m) }
498func (*CreateFolderRequest) ProtoMessage()    {}
499func (*CreateFolderRequest) Descriptor() ([]byte, []int) {
500	return fileDescriptor_folders_6f2b72803211c511, []int{6}
501}
502func (m *CreateFolderRequest) XXX_Unmarshal(b []byte) error {
503	return xxx_messageInfo_CreateFolderRequest.Unmarshal(m, b)
504}
505func (m *CreateFolderRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
506	return xxx_messageInfo_CreateFolderRequest.Marshal(b, m, deterministic)
507}
508func (dst *CreateFolderRequest) XXX_Merge(src proto.Message) {
509	xxx_messageInfo_CreateFolderRequest.Merge(dst, src)
510}
511func (m *CreateFolderRequest) XXX_Size() int {
512	return xxx_messageInfo_CreateFolderRequest.Size(m)
513}
514func (m *CreateFolderRequest) XXX_DiscardUnknown() {
515	xxx_messageInfo_CreateFolderRequest.DiscardUnknown(m)
516}
517
518var xxx_messageInfo_CreateFolderRequest proto.InternalMessageInfo
519
520func (m *CreateFolderRequest) GetParent() string {
521	if m != nil {
522		return m.Parent
523	}
524	return ""
525}
526
527func (m *CreateFolderRequest) GetFolder() *Folder {
528	if m != nil {
529		return m.Folder
530	}
531	return nil
532}
533
534// The MoveFolder request message.
535type MoveFolderRequest struct {
536	// The resource name of the Folder to move.
537	// Must be of the form folders/{folder_id}
538	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
539	// The resource name of the Folder or Organization to reparent
540	// the folder under.
541	// Must be of the form `folders/{folder_id}` or `organizations/{org_id}`.
542	DestinationParent    string   `protobuf:"bytes,2,opt,name=destination_parent,json=destinationParent,proto3" json:"destination_parent,omitempty"`
543	XXX_NoUnkeyedLiteral struct{} `json:"-"`
544	XXX_unrecognized     []byte   `json:"-"`
545	XXX_sizecache        int32    `json:"-"`
546}
547
548func (m *MoveFolderRequest) Reset()         { *m = MoveFolderRequest{} }
549func (m *MoveFolderRequest) String() string { return proto.CompactTextString(m) }
550func (*MoveFolderRequest) ProtoMessage()    {}
551func (*MoveFolderRequest) Descriptor() ([]byte, []int) {
552	return fileDescriptor_folders_6f2b72803211c511, []int{7}
553}
554func (m *MoveFolderRequest) XXX_Unmarshal(b []byte) error {
555	return xxx_messageInfo_MoveFolderRequest.Unmarshal(m, b)
556}
557func (m *MoveFolderRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
558	return xxx_messageInfo_MoveFolderRequest.Marshal(b, m, deterministic)
559}
560func (dst *MoveFolderRequest) XXX_Merge(src proto.Message) {
561	xxx_messageInfo_MoveFolderRequest.Merge(dst, src)
562}
563func (m *MoveFolderRequest) XXX_Size() int {
564	return xxx_messageInfo_MoveFolderRequest.Size(m)
565}
566func (m *MoveFolderRequest) XXX_DiscardUnknown() {
567	xxx_messageInfo_MoveFolderRequest.DiscardUnknown(m)
568}
569
570var xxx_messageInfo_MoveFolderRequest proto.InternalMessageInfo
571
572func (m *MoveFolderRequest) GetName() string {
573	if m != nil {
574		return m.Name
575	}
576	return ""
577}
578
579func (m *MoveFolderRequest) GetDestinationParent() string {
580	if m != nil {
581		return m.DestinationParent
582	}
583	return ""
584}
585
586// The request message for updating a folder's display name.
587type UpdateFolderRequest struct {
588	// The new definition of the Folder. It must include a
589	// a `name` and `display_name` field. The other fields
590	// will be ignored.
591	Folder *Folder `protobuf:"bytes,1,opt,name=folder,proto3" json:"folder,omitempty"`
592	// Fields to be updated.
593	// Only the `display_name` can be updated.
594	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
595	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
596	XXX_unrecognized     []byte                `json:"-"`
597	XXX_sizecache        int32                 `json:"-"`
598}
599
600func (m *UpdateFolderRequest) Reset()         { *m = UpdateFolderRequest{} }
601func (m *UpdateFolderRequest) String() string { return proto.CompactTextString(m) }
602func (*UpdateFolderRequest) ProtoMessage()    {}
603func (*UpdateFolderRequest) Descriptor() ([]byte, []int) {
604	return fileDescriptor_folders_6f2b72803211c511, []int{8}
605}
606func (m *UpdateFolderRequest) XXX_Unmarshal(b []byte) error {
607	return xxx_messageInfo_UpdateFolderRequest.Unmarshal(m, b)
608}
609func (m *UpdateFolderRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
610	return xxx_messageInfo_UpdateFolderRequest.Marshal(b, m, deterministic)
611}
612func (dst *UpdateFolderRequest) XXX_Merge(src proto.Message) {
613	xxx_messageInfo_UpdateFolderRequest.Merge(dst, src)
614}
615func (m *UpdateFolderRequest) XXX_Size() int {
616	return xxx_messageInfo_UpdateFolderRequest.Size(m)
617}
618func (m *UpdateFolderRequest) XXX_DiscardUnknown() {
619	xxx_messageInfo_UpdateFolderRequest.DiscardUnknown(m)
620}
621
622var xxx_messageInfo_UpdateFolderRequest proto.InternalMessageInfo
623
624func (m *UpdateFolderRequest) GetFolder() *Folder {
625	if m != nil {
626		return m.Folder
627	}
628	return nil
629}
630
631func (m *UpdateFolderRequest) GetUpdateMask() *field_mask.FieldMask {
632	if m != nil {
633		return m.UpdateMask
634	}
635	return nil
636}
637
638// The DeleteFolder request message.
639type DeleteFolderRequest struct {
640	// the resource name of the Folder to be deleted.
641	// Must be of the form `folders/{folder_id}`.
642	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
643	// Instructs DeleteFolderAction to delete a folder even when the folder is not
644	// empty.
645	RecursiveDelete      bool     `protobuf:"varint,2,opt,name=recursive_delete,json=recursiveDelete,proto3" json:"recursive_delete,omitempty"`
646	XXX_NoUnkeyedLiteral struct{} `json:"-"`
647	XXX_unrecognized     []byte   `json:"-"`
648	XXX_sizecache        int32    `json:"-"`
649}
650
651func (m *DeleteFolderRequest) Reset()         { *m = DeleteFolderRequest{} }
652func (m *DeleteFolderRequest) String() string { return proto.CompactTextString(m) }
653func (*DeleteFolderRequest) ProtoMessage()    {}
654func (*DeleteFolderRequest) Descriptor() ([]byte, []int) {
655	return fileDescriptor_folders_6f2b72803211c511, []int{9}
656}
657func (m *DeleteFolderRequest) XXX_Unmarshal(b []byte) error {
658	return xxx_messageInfo_DeleteFolderRequest.Unmarshal(m, b)
659}
660func (m *DeleteFolderRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
661	return xxx_messageInfo_DeleteFolderRequest.Marshal(b, m, deterministic)
662}
663func (dst *DeleteFolderRequest) XXX_Merge(src proto.Message) {
664	xxx_messageInfo_DeleteFolderRequest.Merge(dst, src)
665}
666func (m *DeleteFolderRequest) XXX_Size() int {
667	return xxx_messageInfo_DeleteFolderRequest.Size(m)
668}
669func (m *DeleteFolderRequest) XXX_DiscardUnknown() {
670	xxx_messageInfo_DeleteFolderRequest.DiscardUnknown(m)
671}
672
673var xxx_messageInfo_DeleteFolderRequest proto.InternalMessageInfo
674
675func (m *DeleteFolderRequest) GetName() string {
676	if m != nil {
677		return m.Name
678	}
679	return ""
680}
681
682func (m *DeleteFolderRequest) GetRecursiveDelete() bool {
683	if m != nil {
684		return m.RecursiveDelete
685	}
686	return false
687}
688
689// The UndeleteFolder request message.
690type UndeleteFolderRequest struct {
691	// The resource name of the Folder to undelete.
692	// Must be of the form `folders/{folder_id}`.
693	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
694	XXX_NoUnkeyedLiteral struct{} `json:"-"`
695	XXX_unrecognized     []byte   `json:"-"`
696	XXX_sizecache        int32    `json:"-"`
697}
698
699func (m *UndeleteFolderRequest) Reset()         { *m = UndeleteFolderRequest{} }
700func (m *UndeleteFolderRequest) String() string { return proto.CompactTextString(m) }
701func (*UndeleteFolderRequest) ProtoMessage()    {}
702func (*UndeleteFolderRequest) Descriptor() ([]byte, []int) {
703	return fileDescriptor_folders_6f2b72803211c511, []int{10}
704}
705func (m *UndeleteFolderRequest) XXX_Unmarshal(b []byte) error {
706	return xxx_messageInfo_UndeleteFolderRequest.Unmarshal(m, b)
707}
708func (m *UndeleteFolderRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
709	return xxx_messageInfo_UndeleteFolderRequest.Marshal(b, m, deterministic)
710}
711func (dst *UndeleteFolderRequest) XXX_Merge(src proto.Message) {
712	xxx_messageInfo_UndeleteFolderRequest.Merge(dst, src)
713}
714func (m *UndeleteFolderRequest) XXX_Size() int {
715	return xxx_messageInfo_UndeleteFolderRequest.Size(m)
716}
717func (m *UndeleteFolderRequest) XXX_DiscardUnknown() {
718	xxx_messageInfo_UndeleteFolderRequest.DiscardUnknown(m)
719}
720
721var xxx_messageInfo_UndeleteFolderRequest proto.InternalMessageInfo
722
723func (m *UndeleteFolderRequest) GetName() string {
724	if m != nil {
725		return m.Name
726	}
727	return ""
728}
729
730// Metadata describing a long running folder operation
731type FolderOperation struct {
732	// The display name of the folder.
733	DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
734	// The type of this operation.
735	OperationType FolderOperation_OperationType `protobuf:"varint,2,opt,name=operation_type,json=operationType,proto3,enum=google.cloud.resourcemanager.v2.FolderOperation_OperationType" json:"operation_type,omitempty"`
736	// The resource name of the folder's parent.
737	// Only applicable when the operation_type is MOVE.
738	SourceParent string `protobuf:"bytes,3,opt,name=source_parent,json=sourceParent,proto3" json:"source_parent,omitempty"`
739	// The resource name of the folder or organization we are either creating
740	// the folder under or moving the folder to.
741	DestinationParent    string   `protobuf:"bytes,4,opt,name=destination_parent,json=destinationParent,proto3" json:"destination_parent,omitempty"`
742	XXX_NoUnkeyedLiteral struct{} `json:"-"`
743	XXX_unrecognized     []byte   `json:"-"`
744	XXX_sizecache        int32    `json:"-"`
745}
746
747func (m *FolderOperation) Reset()         { *m = FolderOperation{} }
748func (m *FolderOperation) String() string { return proto.CompactTextString(m) }
749func (*FolderOperation) ProtoMessage()    {}
750func (*FolderOperation) Descriptor() ([]byte, []int) {
751	return fileDescriptor_folders_6f2b72803211c511, []int{11}
752}
753func (m *FolderOperation) XXX_Unmarshal(b []byte) error {
754	return xxx_messageInfo_FolderOperation.Unmarshal(m, b)
755}
756func (m *FolderOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
757	return xxx_messageInfo_FolderOperation.Marshal(b, m, deterministic)
758}
759func (dst *FolderOperation) XXX_Merge(src proto.Message) {
760	xxx_messageInfo_FolderOperation.Merge(dst, src)
761}
762func (m *FolderOperation) XXX_Size() int {
763	return xxx_messageInfo_FolderOperation.Size(m)
764}
765func (m *FolderOperation) XXX_DiscardUnknown() {
766	xxx_messageInfo_FolderOperation.DiscardUnknown(m)
767}
768
769var xxx_messageInfo_FolderOperation proto.InternalMessageInfo
770
771func (m *FolderOperation) GetDisplayName() string {
772	if m != nil {
773		return m.DisplayName
774	}
775	return ""
776}
777
778func (m *FolderOperation) GetOperationType() FolderOperation_OperationType {
779	if m != nil {
780		return m.OperationType
781	}
782	return FolderOperation_OPERATION_TYPE_UNSPECIFIED
783}
784
785func (m *FolderOperation) GetSourceParent() string {
786	if m != nil {
787		return m.SourceParent
788	}
789	return ""
790}
791
792func (m *FolderOperation) GetDestinationParent() string {
793	if m != nil {
794		return m.DestinationParent
795	}
796	return ""
797}
798
799func init() {
800	proto.RegisterType((*Folder)(nil), "google.cloud.resourcemanager.v2.Folder")
801	proto.RegisterType((*ListFoldersRequest)(nil), "google.cloud.resourcemanager.v2.ListFoldersRequest")
802	proto.RegisterType((*ListFoldersResponse)(nil), "google.cloud.resourcemanager.v2.ListFoldersResponse")
803	proto.RegisterType((*SearchFoldersRequest)(nil), "google.cloud.resourcemanager.v2.SearchFoldersRequest")
804	proto.RegisterType((*SearchFoldersResponse)(nil), "google.cloud.resourcemanager.v2.SearchFoldersResponse")
805	proto.RegisterType((*GetFolderRequest)(nil), "google.cloud.resourcemanager.v2.GetFolderRequest")
806	proto.RegisterType((*CreateFolderRequest)(nil), "google.cloud.resourcemanager.v2.CreateFolderRequest")
807	proto.RegisterType((*MoveFolderRequest)(nil), "google.cloud.resourcemanager.v2.MoveFolderRequest")
808	proto.RegisterType((*UpdateFolderRequest)(nil), "google.cloud.resourcemanager.v2.UpdateFolderRequest")
809	proto.RegisterType((*DeleteFolderRequest)(nil), "google.cloud.resourcemanager.v2.DeleteFolderRequest")
810	proto.RegisterType((*UndeleteFolderRequest)(nil), "google.cloud.resourcemanager.v2.UndeleteFolderRequest")
811	proto.RegisterType((*FolderOperation)(nil), "google.cloud.resourcemanager.v2.FolderOperation")
812	proto.RegisterEnum("google.cloud.resourcemanager.v2.Folder_LifecycleState", Folder_LifecycleState_name, Folder_LifecycleState_value)
813	proto.RegisterEnum("google.cloud.resourcemanager.v2.FolderOperation_OperationType", FolderOperation_OperationType_name, FolderOperation_OperationType_value)
814}
815
816// Reference imports to suppress errors if they are not otherwise used.
817var _ context.Context
818var _ grpc.ClientConn
819
820// This is a compile-time assertion to ensure that this generated file
821// is compatible with the grpc package it is being compiled against.
822const _ = grpc.SupportPackageIsVersion4
823
824// FoldersClient is the client API for Folders service.
825//
826// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
827type FoldersClient interface {
828	// Lists the Folders that are direct descendants of supplied parent resource.
829	// List provides a strongly consistent view of the Folders underneath
830	// the specified parent resource.
831	// List returns Folders sorted based upon the (ascending) lexical ordering
832	// of their display_name.
833	// The caller must have `resourcemanager.folders.list` permission on the
834	// identified parent.
835	ListFolders(ctx context.Context, in *ListFoldersRequest, opts ...grpc.CallOption) (*ListFoldersResponse, error)
836	// Search for folders that match specific filter criteria.
837	// Search provides an eventually consistent view of the folders a user has
838	// access to which meet the specified filter criteria.
839	//
840	// This will only return folders on which the caller has the
841	// permission `resourcemanager.folders.get`.
842	SearchFolders(ctx context.Context, in *SearchFoldersRequest, opts ...grpc.CallOption) (*SearchFoldersResponse, error)
843	// Retrieves a Folder identified by the supplied resource name.
844	// Valid Folder resource names have the format `folders/{folder_id}`
845	// (for example, `folders/1234`).
846	// The caller must have `resourcemanager.folders.get` permission on the
847	// identified folder.
848	GetFolder(ctx context.Context, in *GetFolderRequest, opts ...grpc.CallOption) (*Folder, error)
849	// Creates a Folder in the resource hierarchy.
850	// Returns an Operation which can be used to track the progress of the
851	// folder creation workflow.
852	// Upon success the Operation.response field will be populated with the
853	// created Folder.
854	//
855	// In order to succeed, the addition of this new Folder must not violate
856	// the Folder naming, height or fanout constraints.
857	// + The Folder's display_name must be distinct from all other Folder's that
858	// share its parent.
859	// + The addition of the Folder must not cause the active Folder hierarchy
860	// to exceed a height of 4. Note, the full active + deleted Folder hierarchy
861	// is allowed to reach a height of 8; this provides additional headroom when
862	// moving folders that contain deleted folders.
863	// + The addition of the Folder must not cause the total number of Folders
864	// under its parent to exceed 100.
865	//
866	// If the operation fails due to a folder constraint violation,
867	// a PreconditionFailure explaining the violation will be returned.
868	// If the failure occurs synchronously then the PreconditionFailure
869	// will be returned via the Status.details field and if it occurs
870	// asynchronously then the PreconditionFailure will be returned
871	// via the the Operation.error field.
872	//
873	// The caller must have `resourcemanager.folders.create` permission on the
874	// identified parent.
875	CreateFolder(ctx context.Context, in *CreateFolderRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
876	// Updates a Folder, changing its display_name.
877	// Changes to the folder display_name will be rejected if they violate either
878	// the display_name formatting rules or naming constraints described in
879	// the [CreateFolder] documentation.
880	// + The Folder's display name must start and end with a letter or digit,
881	// may contain letters, digits, spaces, hyphens and underscores and can be
882	// no longer than 30 characters. This is captured by the regular expression:
883	// [\p{L}\p{N}]({\p{L}\p{N}_- ]{0,28}[\p{L}\p{N}])?.
884	// The caller must have `resourcemanager.folders.update` permission on the
885	// identified folder.
886	//
887	// If the update fails due to the unique name constraint then a
888	// PreconditionFailure explaining this violation will be returned
889	// in the Status.details field.
890	UpdateFolder(ctx context.Context, in *UpdateFolderRequest, opts ...grpc.CallOption) (*Folder, error)
891	// Moves a Folder under a new resource parent.
892	// Returns an Operation which can be used to track the progress of the
893	// folder move workflow.
894	// Upon success the Operation.response field will be populated with the
895	// moved Folder.
896	// Upon failure, a FolderOperationError categorizing the failure cause will
897	// be returned - if the failure occurs synchronously then the
898	// FolderOperationError will be returned via the Status.details field
899	// and if it occurs asynchronously then the FolderOperation will be returned
900	// via the the Operation.error field.
901	// In addition, the Operation.metadata field will be populated with a
902	// FolderOperation message as an aid to stateless clients.
903	// Folder moves will be rejected if they violate either the naming, height
904	// or fanout constraints described in the [CreateFolder] documentation.
905	// The caller must have `resourcemanager.folders.move` permission on the
906	// folder's current and proposed new parent.
907	MoveFolder(ctx context.Context, in *MoveFolderRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
908	// Requests deletion of a Folder. The Folder is moved into the
909	// [DELETE_REQUESTED] state immediately, and is deleted approximately 30 days
910	// later. This method may only be called on an empty Folder in the [ACTIVE]
911	// state, where a Folder is empty if it doesn't contain any Folders or
912	// Projects in the [ACTIVE] state.
913	// The caller must have `resourcemanager.folders.delete` permission on the
914	// identified folder.
915	DeleteFolder(ctx context.Context, in *DeleteFolderRequest, opts ...grpc.CallOption) (*Folder, error)
916	// Cancels the deletion request for a Folder. This method may only be
917	// called on a Folder in the [DELETE_REQUESTED] state.
918	// In order to succeed, the Folder's parent must be in the [ACTIVE] state.
919	// In addition, reintroducing the folder into the tree must not violate
920	// folder naming, height and fanout constraints described in the
921	// [CreateFolder] documentation.
922	// The caller must have `resourcemanager.folders.undelete` permission on the
923	// identified folder.
924	UndeleteFolder(ctx context.Context, in *UndeleteFolderRequest, opts ...grpc.CallOption) (*Folder, error)
925	// Gets the access control policy for a Folder. The returned policy may be
926	// empty if no such policy or resource exists. The `resource` field should
927	// be the Folder's resource name, e.g. "folders/1234".
928	// The caller must have `resourcemanager.folders.getIamPolicy` permission
929	// on the identified folder.
930	GetIamPolicy(ctx context.Context, in *v1.GetIamPolicyRequest, opts ...grpc.CallOption) (*v1.Policy, error)
931	// Sets the access control policy on a Folder, replacing any existing policy.
932	// The `resource` field should be the Folder's resource name, e.g.
933	// "folders/1234".
934	// The caller must have `resourcemanager.folders.setIamPolicy` permission
935	// on the identified folder.
936	SetIamPolicy(ctx context.Context, in *v1.SetIamPolicyRequest, opts ...grpc.CallOption) (*v1.Policy, error)
937	// Returns permissions that a caller has on the specified Folder.
938	// The `resource` field should be the Folder's resource name,
939	// e.g. "folders/1234".
940	//
941	// There are no permissions required for making this API call.
942	TestIamPermissions(ctx context.Context, in *v1.TestIamPermissionsRequest, opts ...grpc.CallOption) (*v1.TestIamPermissionsResponse, error)
943}
944
945type foldersClient struct {
946	cc *grpc.ClientConn
947}
948
949func NewFoldersClient(cc *grpc.ClientConn) FoldersClient {
950	return &foldersClient{cc}
951}
952
953func (c *foldersClient) ListFolders(ctx context.Context, in *ListFoldersRequest, opts ...grpc.CallOption) (*ListFoldersResponse, error) {
954	out := new(ListFoldersResponse)
955	err := c.cc.Invoke(ctx, "/google.cloud.resourcemanager.v2.Folders/ListFolders", in, out, opts...)
956	if err != nil {
957		return nil, err
958	}
959	return out, nil
960}
961
962func (c *foldersClient) SearchFolders(ctx context.Context, in *SearchFoldersRequest, opts ...grpc.CallOption) (*SearchFoldersResponse, error) {
963	out := new(SearchFoldersResponse)
964	err := c.cc.Invoke(ctx, "/google.cloud.resourcemanager.v2.Folders/SearchFolders", in, out, opts...)
965	if err != nil {
966		return nil, err
967	}
968	return out, nil
969}
970
971func (c *foldersClient) GetFolder(ctx context.Context, in *GetFolderRequest, opts ...grpc.CallOption) (*Folder, error) {
972	out := new(Folder)
973	err := c.cc.Invoke(ctx, "/google.cloud.resourcemanager.v2.Folders/GetFolder", in, out, opts...)
974	if err != nil {
975		return nil, err
976	}
977	return out, nil
978}
979
980func (c *foldersClient) CreateFolder(ctx context.Context, in *CreateFolderRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
981	out := new(longrunning.Operation)
982	err := c.cc.Invoke(ctx, "/google.cloud.resourcemanager.v2.Folders/CreateFolder", in, out, opts...)
983	if err != nil {
984		return nil, err
985	}
986	return out, nil
987}
988
989func (c *foldersClient) UpdateFolder(ctx context.Context, in *UpdateFolderRequest, opts ...grpc.CallOption) (*Folder, error) {
990	out := new(Folder)
991	err := c.cc.Invoke(ctx, "/google.cloud.resourcemanager.v2.Folders/UpdateFolder", in, out, opts...)
992	if err != nil {
993		return nil, err
994	}
995	return out, nil
996}
997
998func (c *foldersClient) MoveFolder(ctx context.Context, in *MoveFolderRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
999	out := new(longrunning.Operation)
1000	err := c.cc.Invoke(ctx, "/google.cloud.resourcemanager.v2.Folders/MoveFolder", in, out, opts...)
1001	if err != nil {
1002		return nil, err
1003	}
1004	return out, nil
1005}
1006
1007func (c *foldersClient) DeleteFolder(ctx context.Context, in *DeleteFolderRequest, opts ...grpc.CallOption) (*Folder, error) {
1008	out := new(Folder)
1009	err := c.cc.Invoke(ctx, "/google.cloud.resourcemanager.v2.Folders/DeleteFolder", in, out, opts...)
1010	if err != nil {
1011		return nil, err
1012	}
1013	return out, nil
1014}
1015
1016func (c *foldersClient) UndeleteFolder(ctx context.Context, in *UndeleteFolderRequest, opts ...grpc.CallOption) (*Folder, error) {
1017	out := new(Folder)
1018	err := c.cc.Invoke(ctx, "/google.cloud.resourcemanager.v2.Folders/UndeleteFolder", in, out, opts...)
1019	if err != nil {
1020		return nil, err
1021	}
1022	return out, nil
1023}
1024
1025func (c *foldersClient) GetIamPolicy(ctx context.Context, in *v1.GetIamPolicyRequest, opts ...grpc.CallOption) (*v1.Policy, error) {
1026	out := new(v1.Policy)
1027	err := c.cc.Invoke(ctx, "/google.cloud.resourcemanager.v2.Folders/GetIamPolicy", in, out, opts...)
1028	if err != nil {
1029		return nil, err
1030	}
1031	return out, nil
1032}
1033
1034func (c *foldersClient) SetIamPolicy(ctx context.Context, in *v1.SetIamPolicyRequest, opts ...grpc.CallOption) (*v1.Policy, error) {
1035	out := new(v1.Policy)
1036	err := c.cc.Invoke(ctx, "/google.cloud.resourcemanager.v2.Folders/SetIamPolicy", in, out, opts...)
1037	if err != nil {
1038		return nil, err
1039	}
1040	return out, nil
1041}
1042
1043func (c *foldersClient) TestIamPermissions(ctx context.Context, in *v1.TestIamPermissionsRequest, opts ...grpc.CallOption) (*v1.TestIamPermissionsResponse, error) {
1044	out := new(v1.TestIamPermissionsResponse)
1045	err := c.cc.Invoke(ctx, "/google.cloud.resourcemanager.v2.Folders/TestIamPermissions", in, out, opts...)
1046	if err != nil {
1047		return nil, err
1048	}
1049	return out, nil
1050}
1051
1052// FoldersServer is the server API for Folders service.
1053type FoldersServer interface {
1054	// Lists the Folders that are direct descendants of supplied parent resource.
1055	// List provides a strongly consistent view of the Folders underneath
1056	// the specified parent resource.
1057	// List returns Folders sorted based upon the (ascending) lexical ordering
1058	// of their display_name.
1059	// The caller must have `resourcemanager.folders.list` permission on the
1060	// identified parent.
1061	ListFolders(context.Context, *ListFoldersRequest) (*ListFoldersResponse, error)
1062	// Search for folders that match specific filter criteria.
1063	// Search provides an eventually consistent view of the folders a user has
1064	// access to which meet the specified filter criteria.
1065	//
1066	// This will only return folders on which the caller has the
1067	// permission `resourcemanager.folders.get`.
1068	SearchFolders(context.Context, *SearchFoldersRequest) (*SearchFoldersResponse, error)
1069	// Retrieves a Folder identified by the supplied resource name.
1070	// Valid Folder resource names have the format `folders/{folder_id}`
1071	// (for example, `folders/1234`).
1072	// The caller must have `resourcemanager.folders.get` permission on the
1073	// identified folder.
1074	GetFolder(context.Context, *GetFolderRequest) (*Folder, error)
1075	// Creates a Folder in the resource hierarchy.
1076	// Returns an Operation which can be used to track the progress of the
1077	// folder creation workflow.
1078	// Upon success the Operation.response field will be populated with the
1079	// created Folder.
1080	//
1081	// In order to succeed, the addition of this new Folder must not violate
1082	// the Folder naming, height or fanout constraints.
1083	// + The Folder's display_name must be distinct from all other Folder's that
1084	// share its parent.
1085	// + The addition of the Folder must not cause the active Folder hierarchy
1086	// to exceed a height of 4. Note, the full active + deleted Folder hierarchy
1087	// is allowed to reach a height of 8; this provides additional headroom when
1088	// moving folders that contain deleted folders.
1089	// + The addition of the Folder must not cause the total number of Folders
1090	// under its parent to exceed 100.
1091	//
1092	// If the operation fails due to a folder constraint violation,
1093	// a PreconditionFailure explaining the violation will be returned.
1094	// If the failure occurs synchronously then the PreconditionFailure
1095	// will be returned via the Status.details field and if it occurs
1096	// asynchronously then the PreconditionFailure will be returned
1097	// via the the Operation.error field.
1098	//
1099	// The caller must have `resourcemanager.folders.create` permission on the
1100	// identified parent.
1101	CreateFolder(context.Context, *CreateFolderRequest) (*longrunning.Operation, error)
1102	// Updates a Folder, changing its display_name.
1103	// Changes to the folder display_name will be rejected if they violate either
1104	// the display_name formatting rules or naming constraints described in
1105	// the [CreateFolder] documentation.
1106	// + The Folder's display name must start and end with a letter or digit,
1107	// may contain letters, digits, spaces, hyphens and underscores and can be
1108	// no longer than 30 characters. This is captured by the regular expression:
1109	// [\p{L}\p{N}]({\p{L}\p{N}_- ]{0,28}[\p{L}\p{N}])?.
1110	// The caller must have `resourcemanager.folders.update` permission on the
1111	// identified folder.
1112	//
1113	// If the update fails due to the unique name constraint then a
1114	// PreconditionFailure explaining this violation will be returned
1115	// in the Status.details field.
1116	UpdateFolder(context.Context, *UpdateFolderRequest) (*Folder, error)
1117	// Moves a Folder under a new resource parent.
1118	// Returns an Operation which can be used to track the progress of the
1119	// folder move workflow.
1120	// Upon success the Operation.response field will be populated with the
1121	// moved Folder.
1122	// Upon failure, a FolderOperationError categorizing the failure cause will
1123	// be returned - if the failure occurs synchronously then the
1124	// FolderOperationError will be returned via the Status.details field
1125	// and if it occurs asynchronously then the FolderOperation will be returned
1126	// via the the Operation.error field.
1127	// In addition, the Operation.metadata field will be populated with a
1128	// FolderOperation message as an aid to stateless clients.
1129	// Folder moves will be rejected if they violate either the naming, height
1130	// or fanout constraints described in the [CreateFolder] documentation.
1131	// The caller must have `resourcemanager.folders.move` permission on the
1132	// folder's current and proposed new parent.
1133	MoveFolder(context.Context, *MoveFolderRequest) (*longrunning.Operation, error)
1134	// Requests deletion of a Folder. The Folder is moved into the
1135	// [DELETE_REQUESTED] state immediately, and is deleted approximately 30 days
1136	// later. This method may only be called on an empty Folder in the [ACTIVE]
1137	// state, where a Folder is empty if it doesn't contain any Folders or
1138	// Projects in the [ACTIVE] state.
1139	// The caller must have `resourcemanager.folders.delete` permission on the
1140	// identified folder.
1141	DeleteFolder(context.Context, *DeleteFolderRequest) (*Folder, error)
1142	// Cancels the deletion request for a Folder. This method may only be
1143	// called on a Folder in the [DELETE_REQUESTED] state.
1144	// In order to succeed, the Folder's parent must be in the [ACTIVE] state.
1145	// In addition, reintroducing the folder into the tree must not violate
1146	// folder naming, height and fanout constraints described in the
1147	// [CreateFolder] documentation.
1148	// The caller must have `resourcemanager.folders.undelete` permission on the
1149	// identified folder.
1150	UndeleteFolder(context.Context, *UndeleteFolderRequest) (*Folder, error)
1151	// Gets the access control policy for a Folder. The returned policy may be
1152	// empty if no such policy or resource exists. The `resource` field should
1153	// be the Folder's resource name, e.g. "folders/1234".
1154	// The caller must have `resourcemanager.folders.getIamPolicy` permission
1155	// on the identified folder.
1156	GetIamPolicy(context.Context, *v1.GetIamPolicyRequest) (*v1.Policy, error)
1157	// Sets the access control policy on a Folder, replacing any existing policy.
1158	// The `resource` field should be the Folder's resource name, e.g.
1159	// "folders/1234".
1160	// The caller must have `resourcemanager.folders.setIamPolicy` permission
1161	// on the identified folder.
1162	SetIamPolicy(context.Context, *v1.SetIamPolicyRequest) (*v1.Policy, error)
1163	// Returns permissions that a caller has on the specified Folder.
1164	// The `resource` field should be the Folder's resource name,
1165	// e.g. "folders/1234".
1166	//
1167	// There are no permissions required for making this API call.
1168	TestIamPermissions(context.Context, *v1.TestIamPermissionsRequest) (*v1.TestIamPermissionsResponse, error)
1169}
1170
1171func RegisterFoldersServer(s *grpc.Server, srv FoldersServer) {
1172	s.RegisterService(&_Folders_serviceDesc, srv)
1173}
1174
1175func _Folders_ListFolders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1176	in := new(ListFoldersRequest)
1177	if err := dec(in); err != nil {
1178		return nil, err
1179	}
1180	if interceptor == nil {
1181		return srv.(FoldersServer).ListFolders(ctx, in)
1182	}
1183	info := &grpc.UnaryServerInfo{
1184		Server:     srv,
1185		FullMethod: "/google.cloud.resourcemanager.v2.Folders/ListFolders",
1186	}
1187	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1188		return srv.(FoldersServer).ListFolders(ctx, req.(*ListFoldersRequest))
1189	}
1190	return interceptor(ctx, in, info, handler)
1191}
1192
1193func _Folders_SearchFolders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1194	in := new(SearchFoldersRequest)
1195	if err := dec(in); err != nil {
1196		return nil, err
1197	}
1198	if interceptor == nil {
1199		return srv.(FoldersServer).SearchFolders(ctx, in)
1200	}
1201	info := &grpc.UnaryServerInfo{
1202		Server:     srv,
1203		FullMethod: "/google.cloud.resourcemanager.v2.Folders/SearchFolders",
1204	}
1205	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1206		return srv.(FoldersServer).SearchFolders(ctx, req.(*SearchFoldersRequest))
1207	}
1208	return interceptor(ctx, in, info, handler)
1209}
1210
1211func _Folders_GetFolder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1212	in := new(GetFolderRequest)
1213	if err := dec(in); err != nil {
1214		return nil, err
1215	}
1216	if interceptor == nil {
1217		return srv.(FoldersServer).GetFolder(ctx, in)
1218	}
1219	info := &grpc.UnaryServerInfo{
1220		Server:     srv,
1221		FullMethod: "/google.cloud.resourcemanager.v2.Folders/GetFolder",
1222	}
1223	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1224		return srv.(FoldersServer).GetFolder(ctx, req.(*GetFolderRequest))
1225	}
1226	return interceptor(ctx, in, info, handler)
1227}
1228
1229func _Folders_CreateFolder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1230	in := new(CreateFolderRequest)
1231	if err := dec(in); err != nil {
1232		return nil, err
1233	}
1234	if interceptor == nil {
1235		return srv.(FoldersServer).CreateFolder(ctx, in)
1236	}
1237	info := &grpc.UnaryServerInfo{
1238		Server:     srv,
1239		FullMethod: "/google.cloud.resourcemanager.v2.Folders/CreateFolder",
1240	}
1241	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1242		return srv.(FoldersServer).CreateFolder(ctx, req.(*CreateFolderRequest))
1243	}
1244	return interceptor(ctx, in, info, handler)
1245}
1246
1247func _Folders_UpdateFolder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1248	in := new(UpdateFolderRequest)
1249	if err := dec(in); err != nil {
1250		return nil, err
1251	}
1252	if interceptor == nil {
1253		return srv.(FoldersServer).UpdateFolder(ctx, in)
1254	}
1255	info := &grpc.UnaryServerInfo{
1256		Server:     srv,
1257		FullMethod: "/google.cloud.resourcemanager.v2.Folders/UpdateFolder",
1258	}
1259	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1260		return srv.(FoldersServer).UpdateFolder(ctx, req.(*UpdateFolderRequest))
1261	}
1262	return interceptor(ctx, in, info, handler)
1263}
1264
1265func _Folders_MoveFolder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1266	in := new(MoveFolderRequest)
1267	if err := dec(in); err != nil {
1268		return nil, err
1269	}
1270	if interceptor == nil {
1271		return srv.(FoldersServer).MoveFolder(ctx, in)
1272	}
1273	info := &grpc.UnaryServerInfo{
1274		Server:     srv,
1275		FullMethod: "/google.cloud.resourcemanager.v2.Folders/MoveFolder",
1276	}
1277	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1278		return srv.(FoldersServer).MoveFolder(ctx, req.(*MoveFolderRequest))
1279	}
1280	return interceptor(ctx, in, info, handler)
1281}
1282
1283func _Folders_DeleteFolder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1284	in := new(DeleteFolderRequest)
1285	if err := dec(in); err != nil {
1286		return nil, err
1287	}
1288	if interceptor == nil {
1289		return srv.(FoldersServer).DeleteFolder(ctx, in)
1290	}
1291	info := &grpc.UnaryServerInfo{
1292		Server:     srv,
1293		FullMethod: "/google.cloud.resourcemanager.v2.Folders/DeleteFolder",
1294	}
1295	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1296		return srv.(FoldersServer).DeleteFolder(ctx, req.(*DeleteFolderRequest))
1297	}
1298	return interceptor(ctx, in, info, handler)
1299}
1300
1301func _Folders_UndeleteFolder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1302	in := new(UndeleteFolderRequest)
1303	if err := dec(in); err != nil {
1304		return nil, err
1305	}
1306	if interceptor == nil {
1307		return srv.(FoldersServer).UndeleteFolder(ctx, in)
1308	}
1309	info := &grpc.UnaryServerInfo{
1310		Server:     srv,
1311		FullMethod: "/google.cloud.resourcemanager.v2.Folders/UndeleteFolder",
1312	}
1313	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1314		return srv.(FoldersServer).UndeleteFolder(ctx, req.(*UndeleteFolderRequest))
1315	}
1316	return interceptor(ctx, in, info, handler)
1317}
1318
1319func _Folders_GetIamPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1320	in := new(v1.GetIamPolicyRequest)
1321	if err := dec(in); err != nil {
1322		return nil, err
1323	}
1324	if interceptor == nil {
1325		return srv.(FoldersServer).GetIamPolicy(ctx, in)
1326	}
1327	info := &grpc.UnaryServerInfo{
1328		Server:     srv,
1329		FullMethod: "/google.cloud.resourcemanager.v2.Folders/GetIamPolicy",
1330	}
1331	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1332		return srv.(FoldersServer).GetIamPolicy(ctx, req.(*v1.GetIamPolicyRequest))
1333	}
1334	return interceptor(ctx, in, info, handler)
1335}
1336
1337func _Folders_SetIamPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1338	in := new(v1.SetIamPolicyRequest)
1339	if err := dec(in); err != nil {
1340		return nil, err
1341	}
1342	if interceptor == nil {
1343		return srv.(FoldersServer).SetIamPolicy(ctx, in)
1344	}
1345	info := &grpc.UnaryServerInfo{
1346		Server:     srv,
1347		FullMethod: "/google.cloud.resourcemanager.v2.Folders/SetIamPolicy",
1348	}
1349	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1350		return srv.(FoldersServer).SetIamPolicy(ctx, req.(*v1.SetIamPolicyRequest))
1351	}
1352	return interceptor(ctx, in, info, handler)
1353}
1354
1355func _Folders_TestIamPermissions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1356	in := new(v1.TestIamPermissionsRequest)
1357	if err := dec(in); err != nil {
1358		return nil, err
1359	}
1360	if interceptor == nil {
1361		return srv.(FoldersServer).TestIamPermissions(ctx, in)
1362	}
1363	info := &grpc.UnaryServerInfo{
1364		Server:     srv,
1365		FullMethod: "/google.cloud.resourcemanager.v2.Folders/TestIamPermissions",
1366	}
1367	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1368		return srv.(FoldersServer).TestIamPermissions(ctx, req.(*v1.TestIamPermissionsRequest))
1369	}
1370	return interceptor(ctx, in, info, handler)
1371}
1372
1373var _Folders_serviceDesc = grpc.ServiceDesc{
1374	ServiceName: "google.cloud.resourcemanager.v2.Folders",
1375	HandlerType: (*FoldersServer)(nil),
1376	Methods: []grpc.MethodDesc{
1377		{
1378			MethodName: "ListFolders",
1379			Handler:    _Folders_ListFolders_Handler,
1380		},
1381		{
1382			MethodName: "SearchFolders",
1383			Handler:    _Folders_SearchFolders_Handler,
1384		},
1385		{
1386			MethodName: "GetFolder",
1387			Handler:    _Folders_GetFolder_Handler,
1388		},
1389		{
1390			MethodName: "CreateFolder",
1391			Handler:    _Folders_CreateFolder_Handler,
1392		},
1393		{
1394			MethodName: "UpdateFolder",
1395			Handler:    _Folders_UpdateFolder_Handler,
1396		},
1397		{
1398			MethodName: "MoveFolder",
1399			Handler:    _Folders_MoveFolder_Handler,
1400		},
1401		{
1402			MethodName: "DeleteFolder",
1403			Handler:    _Folders_DeleteFolder_Handler,
1404		},
1405		{
1406			MethodName: "UndeleteFolder",
1407			Handler:    _Folders_UndeleteFolder_Handler,
1408		},
1409		{
1410			MethodName: "GetIamPolicy",
1411			Handler:    _Folders_GetIamPolicy_Handler,
1412		},
1413		{
1414			MethodName: "SetIamPolicy",
1415			Handler:    _Folders_SetIamPolicy_Handler,
1416		},
1417		{
1418			MethodName: "TestIamPermissions",
1419			Handler:    _Folders_TestIamPermissions_Handler,
1420		},
1421	},
1422	Streams:  []grpc.StreamDesc{},
1423	Metadata: "google/cloud/resourcemanager/v2/folders.proto",
1424}
1425
1426func init() {
1427	proto.RegisterFile("google/cloud/resourcemanager/v2/folders.proto", fileDescriptor_folders_6f2b72803211c511)
1428}
1429
1430var fileDescriptor_folders_6f2b72803211c511 = []byte{
1431	// 1235 bytes of a gzipped FileDescriptorProto
1432	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0x5d, 0x6f, 0xdb, 0xd4,
1433	0x1b, 0xff, 0x9f, 0xac, 0xcb, 0xba, 0x27, 0x2f, 0xcd, 0x4e, 0xdb, 0xfd, 0x4b, 0xba, 0xbe, 0x70,
1434	0xca, 0x46, 0xd6, 0x6a, 0xce, 0x9a, 0x41, 0x2f, 0x3a, 0x01, 0xea, 0x52, 0xb7, 0x8a, 0xd4, 0x97,
1435	0xe0, 0xb8, 0x95, 0x86, 0x2a, 0x59, 0x5e, 0x72, 0x9a, 0x5a, 0x75, 0x6c, 0xcf, 0x76, 0x02, 0xd9,
1436	0x84, 0x34, 0x4d, 0x9a, 0xb8, 0x98, 0xb8, 0xda, 0x1d, 0x88, 0x0b, 0x6e, 0xb9, 0x45, 0xe2, 0x3b,
1437	0xc0, 0x2d, 0x5f, 0x81, 0x0f, 0x82, 0x7c, 0x7c, 0x9c, 0xda, 0x4e, 0x3a, 0xa7, 0x08, 0x71, 0x55,
1438	0xfb, 0x79, 0xfd, 0x3d, 0x6f, 0xbf, 0x3a, 0xf0, 0xa0, 0x6d, 0x9a, 0x6d, 0x9d, 0x96, 0x9b, 0xba,
1439	0xd9, 0x6d, 0x95, 0x6d, 0xea, 0x98, 0x5d, 0xbb, 0x49, 0x3b, 0xaa, 0xa1, 0xb6, 0xa9, 0x5d, 0xee,
1440	0x55, 0xca, 0xa7, 0xa6, 0xde, 0xa2, 0xb6, 0x23, 0x58, 0xb6, 0xe9, 0x9a, 0x78, 0xc9, 0x37, 0x17,
1441	0x98, 0xb9, 0x10, 0x33, 0x17, 0x7a, 0x95, 0xe2, 0x1d, 0x1e, 0x4f, 0xb5, 0xb4, 0xb2, 0x6a, 0x18,
1442	0xa6, 0xab, 0xba, 0x9a, 0x69, 0x70, 0xf7, 0xe2, 0x22, 0xd7, 0x6a, 0x6a, 0xa7, 0xdc, 0x5b, 0xf7,
1443	0xfe, 0x28, 0x96, 0xa9, 0x6b, 0xcd, 0x3e, 0xd7, 0x17, 0xa3, 0xfa, 0x88, 0x6e, 0x85, 0xeb, 0x74,
1444	0xd3, 0x68, 0xdb, 0x5d, 0xc3, 0xd0, 0x8c, 0x76, 0xd9, 0xb4, 0xa8, 0x1d, 0x49, 0xb0, 0xcc, 0x8d,
1445	0xd8, 0xdb, 0xb3, 0xee, 0x69, 0xf9, 0x54, 0xa3, 0x7a, 0x4b, 0xe9, 0xa8, 0xce, 0x39, 0xb7, 0x58,
1446	0x8a, 0x5b, 0xb8, 0x5a, 0x87, 0x3a, 0xae, 0xda, 0xb1, 0x7c, 0x03, 0xf2, 0xdd, 0x35, 0x48, 0xef,
1447	0xb0, 0xa2, 0x31, 0x86, 0x09, 0x43, 0xed, 0xd0, 0x39, 0xb4, 0x8c, 0x4a, 0x37, 0x25, 0xf6, 0x8c,
1448	0x6f, 0x43, 0xda, 0x52, 0x6d, 0x6a, 0xb8, 0x73, 0x29, 0x26, 0xe5, 0x6f, 0xf8, 0x43, 0xc8, 0xb6,
1449	0x34, 0xc7, 0xd2, 0xd5, 0xbe, 0xc2, 0x7c, 0xae, 0x31, 0x6d, 0x86, 0xcb, 0x0e, 0x3c, 0x57, 0x05,
1450	0xa6, 0x74, 0xed, 0x94, 0x36, 0xfb, 0x4d, 0x9d, 0x2a, 0x8e, 0xab, 0xba, 0x74, 0x6e, 0x62, 0x19,
1451	0x95, 0xf2, 0x95, 0x0d, 0x21, 0xa1, 0xad, 0x82, 0x0f, 0x48, 0xd8, 0x0b, 0xdc, 0x1b, 0x9e, 0xb7,
1452	0x94, 0xd7, 0x23, 0xef, 0xf8, 0x31, 0x64, 0x9a, 0x36, 0x55, 0x5d, 0xaa, 0x78, 0x45, 0xcd, 0x5d,
1453	0x5f, 0x46, 0xa5, 0x4c, 0xa5, 0x18, 0x04, 0x0f, 0x2a, 0x16, 0xe4, 0xa0, 0x62, 0x09, 0x7c, 0x73,
1454	0x4f, 0xe0, 0x39, 0x77, 0xad, 0xd6, 0xc0, 0x39, 0x9d, 0xec, 0xec, 0x9b, 0x7b, 0x02, 0xd2, 0x80,
1455	0x7c, 0x14, 0x1b, 0x5e, 0x82, 0xf9, 0xbd, 0xda, 0x8e, 0x58, 0x7d, 0x5a, 0xdd, 0x13, 0x95, 0x86,
1456	0xbc, 0x25, 0x8b, 0xca, 0xd1, 0x41, 0xa3, 0x2e, 0x56, 0x6b, 0x3b, 0x35, 0x71, 0xbb, 0xf0, 0x3f,
1457	0x0c, 0x90, 0xde, 0xaa, 0xca, 0xb5, 0x63, 0xb1, 0x80, 0xf0, 0x0c, 0x14, 0xb6, 0xc5, 0x3d, 0x51,
1458	0x16, 0x15, 0x49, 0xfc, 0xf2, 0x48, 0x6c, 0xc8, 0xe2, 0x76, 0x21, 0x45, 0xde, 0x22, 0xc0, 0x7b,
1459	0x9a, 0xe3, 0xfa, 0xc5, 0x3b, 0x12, 0x7d, 0xde, 0xa5, 0x8e, 0x1b, 0x9a, 0x00, 0x8a, 0x4c, 0x60,
1460	0x1e, 0x6e, 0x5a, 0x6a, 0x9b, 0x2a, 0x8e, 0xf6, 0x82, 0xb2, 0xe1, 0x5c, 0x97, 0x26, 0x3d, 0x41,
1461	0x43, 0x7b, 0x41, 0xf1, 0x02, 0x00, 0x53, 0xba, 0xe6, 0x39, 0x35, 0xf8, 0x70, 0x98, 0xb9, 0xec,
1462	0x09, 0xbc, 0xe9, 0x39, 0x67, 0xe6, 0xd7, 0x4a, 0x8b, 0xea, 0xd4, 0xa5, 0x2d, 0x36, 0x97, 0x49,
1463	0x29, 0xe3, 0xc9, 0xb6, 0x7d, 0x11, 0x79, 0x85, 0x60, 0x3a, 0x82, 0xc6, 0xb1, 0x4c, 0xc3, 0xa1,
1464	0x78, 0x0b, 0x6e, 0xf0, 0x1b, 0x99, 0x43, 0xcb, 0xd7, 0x4a, 0x99, 0xca, 0xc7, 0x63, 0x4e, 0x53,
1465	0x0a, 0xfc, 0xf0, 0x3d, 0x98, 0x32, 0xe8, 0x37, 0xae, 0x12, 0x42, 0xe8, 0x2f, 0x57, 0xce, 0x13,
1466	0xd7, 0x03, 0x94, 0xe4, 0x0c, 0x66, 0x1a, 0x54, 0xb5, 0x9b, 0x67, 0xb1, 0x8e, 0x44, 0x2a, 0x47,
1467	0xef, 0xad, 0x3c, 0x15, 0xaf, 0x7c, 0x06, 0xae, 0x3f, 0xef, 0x52, 0xbb, 0xcf, 0x7b, 0xe2, 0xbf,
1468	0x90, 0xd7, 0x08, 0x66, 0x63, 0xa9, 0xfe, 0xfb, 0x72, 0xef, 0x41, 0x61, 0x97, 0xf2, 0x7e, 0x07,
1469	0xa5, 0x8e, 0x38, 0x49, 0x62, 0xc0, 0x74, 0x95, 0xed, 0x71, 0xd4, 0xf4, 0xb2, 0x3d, 0xf9, 0x02,
1470	0xd2, 0x3e, 0x12, 0x96, 0xf5, 0x0a, 0x05, 0x70, 0x37, 0x72, 0x0c, 0xb7, 0xf6, 0xcd, 0x1e, 0x4d,
1471	0x04, 0x86, 0x1f, 0x00, 0x6e, 0x51, 0xc7, 0xd5, 0x0c, 0xc6, 0x51, 0x4a, 0x84, 0x37, 0x6e, 0x85,
1472	0x34, 0x75, 0xa6, 0x20, 0xef, 0x10, 0x4c, 0x1f, 0xb1, 0x9b, 0x8a, 0x86, 0xbe, 0x00, 0x8c, 0xfe,
1473	0x11, 0xe0, 0xd0, 0x69, 0x7b, 0x44, 0xc8, 0xcb, 0x1e, 0x3e, 0xed, 0x1d, 0x8f, 0x2b, 0xf7, 0x55,
1474	0xe7, 0x3c, 0x38, 0x6d, 0xef, 0x99, 0xc8, 0x30, 0xed, 0x9f, 0x40, 0x72, 0xbd, 0xf7, 0xa1, 0x60,
1475	0xd3, 0x66, 0xd7, 0x76, 0xb4, 0x1e, 0xe5, 0xa7, 0xc4, 0x92, 0x4d, 0x4a, 0x53, 0x03, 0xb9, 0x1f,
1476	0x8b, 0xac, 0xc1, 0xec, 0x91, 0xd1, 0x1a, 0x2f, 0x2e, 0xf9, 0x2d, 0x05, 0x53, 0xbe, 0xd5, 0x61,
1477	0x40, 0xf8, 0x43, 0x7c, 0x8b, 0x86, 0xf9, 0x96, 0x42, 0x7e, 0xf0, 0x0f, 0x42, 0x71, 0xfb, 0x96,
1478	0x0f, 0x26, 0x5f, 0xf9, 0x7c, 0xcc, 0xfe, 0x0d, 0x92, 0x09, 0x83, 0x27, 0xb9, 0x6f, 0x51, 0x29,
1479	0x67, 0x86, 0x5f, 0xf1, 0x0a, 0xe4, 0xfc, 0x00, 0xc1, 0x80, 0xfd, 0x4b, 0xca, 0xfa, 0x42, 0x7f,
1480	0xb6, 0x97, 0xac, 0xc2, 0xc4, 0x65, 0xab, 0x20, 0x42, 0x2e, 0x92, 0x13, 0x2f, 0x42, 0xf1, 0xb0,
1481	0x2e, 0x4a, 0x5b, 0x72, 0xed, 0xf0, 0x40, 0x91, 0x9f, 0xd6, 0x47, 0xb0, 0x69, 0x55, 0x12, 0xb7,
1482	0x64, 0x8f, 0x4d, 0x27, 0x61, 0x62, 0xff, 0xf0, 0x58, 0x2c, 0xa4, 0x2a, 0xbf, 0x66, 0xe1, 0x06,
1483	0x3f, 0x60, 0xfc, 0x3d, 0x82, 0x4c, 0x88, 0xbf, 0xf0, 0xa3, 0xc4, 0x2e, 0x0c, 0x73, 0x6f, 0xf1,
1484	0x93, 0xab, 0x39, 0xf9, 0x9c, 0x41, 0xa6, 0x5f, 0xff, 0xf9, 0xd7, 0xbb, 0x54, 0x0e, 0x67, 0x42,
1485	0x1f, 0x14, 0xf8, 0x27, 0x04, 0xb9, 0x08, 0xc5, 0xe0, 0x4f, 0x13, 0x83, 0x8f, 0x62, 0xbf, 0xe2,
1486	0xc6, 0x55, 0xdd, 0x38, 0xaa, 0x05, 0x86, 0xea, 0xff, 0x04, 0x87, 0x50, 0x6d, 0x3a, 0xcc, 0x74,
1487	0x13, 0xad, 0xe2, 0x37, 0x08, 0x6e, 0x0e, 0xe8, 0x07, 0xaf, 0x27, 0x26, 0x89, 0x53, 0x55, 0x71,
1488	0xdc, 0x33, 0x25, 0x77, 0x18, 0x90, 0xdb, 0x78, 0xc6, 0x03, 0xf2, 0xd2, 0xdb, 0xe6, 0xcf, 0x38,
1489	0x9c, 0xf2, 0xea, 0xb7, 0xf8, 0x15, 0x82, 0x6c, 0x98, 0xde, 0x70, 0xf2, 0x0c, 0x46, 0xb0, 0x61,
1490	0x71, 0x21, 0xf0, 0x0a, 0x7d, 0x3f, 0x5d, 0xec, 0x35, 0x99, 0x67, 0x18, 0x66, 0x49, 0x78, 0x44,
1491	0x9b, 0x01, 0x7f, 0xfc, 0x80, 0x20, 0x1b, 0x26, 0xa6, 0x31, 0x20, 0x8c, 0xe0, 0xb1, 0xf1, 0x1b,
1492	0xb2, 0xc6, 0xc0, 0xdc, 0xad, 0xcc, 0xb3, 0x86, 0xf8, 0x20, 0x84, 0x58, 0x5f, 0x06, 0xe0, 0xde,
1493	0x20, 0x80, 0x0b, 0x3a, 0xc6, 0x95, 0xc4, 0x24, 0x43, 0xdc, 0x9d, 0xd4, 0x9b, 0x8f, 0x18, 0x9c,
1494	0x45, 0xf2, 0xc1, 0xa8, 0xf9, 0x6c, 0x76, 0xcc, 0x1e, 0xf5, 0xf6, 0xe5, 0x2d, 0x82, 0x6c, 0x98,
1495	0x28, 0xc7, 0x68, 0xd2, 0x08, 0x5e, 0xbd, 0xf2, 0xd6, 0xac, 0x8e, 0xde, 0x9a, 0x1f, 0x11, 0xe4,
1496	0xa3, 0x04, 0x8b, 0x93, 0xef, 0x64, 0x24, 0x23, 0x8f, 0x8f, 0xa8, 0xc4, 0x10, 0x11, 0xb2, 0x30,
1497	0xb2, 0x4f, 0x5d, 0x1e, 0xdc, 0xeb, 0xd5, 0x4b, 0xc8, 0xee, 0x52, 0xb7, 0xa6, 0x76, 0xea, 0xec,
1498	0x0b, 0x1f, 0x93, 0x20, 0x85, 0xa6, 0x76, 0x84, 0xde, 0xba, 0x10, 0x56, 0x06, 0x30, 0x66, 0x63,
1499	0x36, 0xbe, 0x96, 0x3c, 0x64, 0x49, 0x57, 0xc9, 0x5d, 0x96, 0x34, 0x00, 0x17, 0x4e, 0xdc, 0x0e,
1500	0x05, 0xe3, 0xc9, 0x1b, 0xef, 0x4b, 0xde, 0xf8, 0x37, 0x93, 0x3b, 0xb1, 0xe4, 0x3f, 0x23, 0xc0,
1501	0x32, 0x75, 0x98, 0x90, 0xda, 0x1d, 0xcd, 0x71, 0xbc, 0x5f, 0x2f, 0xb8, 0x14, 0x8b, 0x3f, 0x6c,
1502	0x12, 0x20, 0xb9, 0x3f, 0x86, 0x25, 0x27, 0xb8, 0x0d, 0x86, 0xee, 0x21, 0x59, 0xbb, 0x14, 0x9d,
1503	0x3b, 0xe4, 0xbc, 0x89, 0x56, 0x9f, 0xfc, 0x8e, 0x60, 0xa5, 0x69, 0x76, 0x92, 0xc6, 0xfe, 0x24,
1504	0xcb, 0x19, 0xb5, 0xee, 0x7d, 0x40, 0xd4, 0xd1, 0x57, 0x07, 0xdc, 0xa1, 0x6d, 0xea, 0xaa, 0xd1,
1505	0x16, 0x4c, 0xbb, 0x5d, 0x6e, 0x53, 0x83, 0x7d, 0x5e, 0x94, 0x7d, 0x95, 0x6a, 0x69, 0xce, 0xa5,
1506	0x3f, 0x35, 0x1f, 0xc7, 0x44, 0xbf, 0xa4, 0x96, 0x76, 0xfd, 0x80, 0x55, 0x86, 0x40, 0xe2, 0xea,
1507	0x7d, 0x8e, 0xe0, 0xb8, 0xf2, 0x47, 0x60, 0x71, 0xc2, 0x2c, 0x4e, 0x62, 0x16, 0x27, 0xc7, 0x95,
1508	0x67, 0x69, 0x96, 0xfe, 0xd1, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xda, 0x9b, 0x45, 0x8f, 0xe8,
1509	0x0e, 0x00, 0x00,
1510}
1511