You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1511 lines
63 KiB

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