create method
Creates a Folder in the resource hierarchy.
Returns an Operation which can be used to track the progress of the folder
creation workflow. Upon success the Operation.response field will be
populated with the created Folder. In order to succeed, the addition of
this new Folder must not violate the Folder naming, height or fanout
constraints. + The Folder's display_name must be distinct from all other
Folders that share its parent. + The addition of the Folder must not cause
the active Folder hierarchy to exceed a height of 10. Note, the full
active + deleted Folder hierarchy is allowed to reach a height of 20; this
provides additional headroom when moving folders that contain deleted
folders. + The addition of the Folder must not cause the total number of
Folders under its parent to exceed 300. If the operation fails due to a
folder constraint violation, some errors may be returned by the
CreateFolder request, with status code FAILED_PRECONDITION and an error
description. Other folder constraint violations will be communicated in
the Operation, with the specific PreconditionFailure returned via the
details list in the Operation.error field. The caller must have
resourcemanager.folders.create
permission on the identified parent.
request
- The metadata request object.
Request parameters:
parent
- Required. The resource name of the new Folder's parent. Must be
of the form folders/{folder_id}
or organizations/{org_id}
.
$fields
- Selector specifying which fields to include in a partial
response.
Completes with a Operation.
Completes with a commons.ApiRequestError if the API endpoint returned an error.
If the used http.Client
completes with an error when making a REST call,
this method will complete with the same error.
Implementation
async.Future<Operation> create(
Folder request, {
core.String? parent,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
if (parent != null) 'parent': [parent],
if ($fields != null) 'fields': [$fields],
};
const url_ = 'v2/folders';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>);
}