| // This is a generated file (see the discoveryapis_generator project). |
| |
| // ignore_for_file: camel_case_types |
| // ignore_for_file: comment_references |
| // ignore_for_file: directives_ordering |
| // ignore_for_file: file_names |
| // ignore_for_file: library_names |
| // ignore_for_file: lines_longer_than_80_chars |
| // ignore_for_file: non_constant_identifier_names |
| // ignore_for_file: prefer_expression_function_bodies |
| // ignore_for_file: prefer_final_locals |
| // ignore_for_file: prefer_interpolation_to_compose_strings |
| // ignore_for_file: unnecessary_brace_in_string_interps |
| // ignore_for_file: unnecessary_cast |
| // ignore_for_file: unnecessary_lambdas |
| // ignore_for_file: unnecessary_parenthesis |
| // ignore_for_file: unnecessary_string_interpolations |
| |
| library googleapis.iam.v1; |
| |
| import 'dart:core' as core; |
| import 'dart:async' as async; |
| import 'dart:convert' as convert; |
| |
| import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons; |
| import 'package:http/http.dart' as http; |
| |
| export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' |
| show ApiRequestError, DetailedApiRequestError; |
| |
| const userAgent = 'dart-api-client iam/v1'; |
| |
| /// Manages identity and access control for Google Cloud Platform resources, |
| /// including the creation of service accounts, which you can use to |
| /// authenticate to Google and make API calls. *Note:* This API is tied to the |
| /// IAM service account credentials API ( iamcredentials.googleapis.com). |
| /// Enabling or disabling this API will also enable or disable the IAM service |
| /// account credentials API. |
| class IamApi { |
| /// View and manage your data across Google Cloud Platform services |
| static const cloudPlatformScope = |
| 'https://www.googleapis.com/auth/cloud-platform'; |
| |
| final commons.ApiRequester _requester; |
| |
| IamPoliciesResourceApi get iamPolicies => IamPoliciesResourceApi(_requester); |
| OrganizationsResourceApi get organizations => |
| OrganizationsResourceApi(_requester); |
| PermissionsResourceApi get permissions => PermissionsResourceApi(_requester); |
| ProjectsResourceApi get projects => ProjectsResourceApi(_requester); |
| RolesResourceApi get roles => RolesResourceApi(_requester); |
| |
| IamApi(http.Client client, |
| {core.String rootUrl = 'https://iam.googleapis.com/', |
| core.String servicePath = ''}) |
| : _requester = |
| commons.ApiRequester(client, rootUrl, servicePath, userAgent); |
| } |
| |
| class IamPoliciesResourceApi { |
| final commons.ApiRequester _requester; |
| |
| IamPoliciesResourceApi(commons.ApiRequester client) : _requester = client; |
| |
| /// Lints, or validates, an IAM policy. Currently checks the |
| /// google.iam.v1.Binding.condition field, which contains a condition |
| /// expression for a role binding. Successful calls to this method always |
| /// return an HTTP `200 OK` status code, even if the linter detects an issue |
| /// in the IAM policy. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [LintPolicyResponse]. |
| /// |
| /// 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. |
| async.Future<LintPolicyResponse> lintPolicy( |
| LintPolicyRequest request, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/iamPolicies:lintPolicy'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => LintPolicyResponse.fromJson(data)); |
| } |
| |
| /// Returns a list of services that allow you to opt into audit logs that are |
| /// not generated by default. To learn more about audit logs, see the [Logging |
| /// documentation](https://cloud.google.com/logging/docs/audit). |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [QueryAuditableServicesResponse]. |
| /// |
| /// 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. |
| async.Future<QueryAuditableServicesResponse> queryAuditableServices( |
| QueryAuditableServicesRequest request, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/iamPolicies:queryAuditableServices'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response |
| .then((data) => QueryAuditableServicesResponse.fromJson(data)); |
| } |
| } |
| |
| class OrganizationsResourceApi { |
| final commons.ApiRequester _requester; |
| |
| OrganizationsRolesResourceApi get roles => |
| OrganizationsRolesResourceApi(_requester); |
| |
| OrganizationsResourceApi(commons.ApiRequester client) : _requester = client; |
| } |
| |
| class OrganizationsRolesResourceApi { |
| final commons.ApiRequester _requester; |
| |
| OrganizationsRolesResourceApi(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Creates a new custom Role. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - The `parent` parameter's value depends on the target resource |
| /// for the request, namely |
| /// [`projects`](/iam/reference/rest/v1/projects.roles) or |
| /// [`organizations`](/iam/reference/rest/v1/organizations.roles). Each |
| /// resource type's `parent` value format is described below: * |
| /// [`projects.roles.create()`](/iam/reference/rest/v1/projects.roles/create): |
| /// `projects/{PROJECT_ID}`. This method creates project-level [custom |
| /// roles](/iam/docs/understanding-custom-roles). Example request URL: |
| /// `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles` * |
| /// [`organizations.roles.create()`](/iam/reference/rest/v1/organizations.roles/create): |
| /// `organizations/{ORGANIZATION_ID}`. This method creates organization-level |
| /// [custom roles](/iam/docs/understanding-custom-roles). Example request URL: |
| /// `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles` |
| /// Note: Wildcard (*) values are invalid; you must specify a complete project |
| /// ID or organization ID. |
| /// Value must have pattern "^organizations/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Role]. |
| /// |
| /// 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. |
| async.Future<Role> create( |
| CreateRoleRequest request, |
| core.String parent, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/roles'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Role.fromJson(data)); |
| } |
| |
| /// Deletes a custom Role. When you delete a custom role, the following |
| /// changes occur immediately: * You cannot bind a member to the custom role |
| /// in an IAM Policy. * Existing bindings to the custom role are not changed, |
| /// but they have no effect. * By default, the response from ListRoles does |
| /// not include the custom role. You have 7 days to undelete the custom role. |
| /// After 7 days, the following changes occur: * The custom role is |
| /// permanently deleted and cannot be recovered. * If an IAM policy contains a |
| /// binding to the custom role, the binding is permanently removed. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The `name` parameter's value depends on the target resource for |
| /// the request, namely [`projects`](/iam/reference/rest/v1/projects.roles) or |
| /// [`organizations`](/iam/reference/rest/v1/organizations.roles). Each |
| /// resource type's `name` value format is described below: * |
| /// [`projects.roles.delete()`](/iam/reference/rest/v1/projects.roles/delete): |
| /// `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method deletes only |
| /// [custom roles](/iam/docs/understanding-custom-roles) that have been |
| /// created at the project level. Example request URL: |
| /// `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` |
| /// * |
| /// [`organizations.roles.delete()`](/iam/reference/rest/v1/organizations.roles/delete): |
| /// `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method |
| /// deletes only [custom roles](/iam/docs/understanding-custom-roles) that |
| /// have been created at the organization level. Example request URL: |
| /// `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` |
| /// Note: Wildcard (*) values are invalid; you must specify a complete project |
| /// ID or organization ID. |
| /// Value must have pattern "^organizations/[^/]+/roles/[^/]+$". |
| /// |
| /// [etag] - Used to perform a consistent read-modify-write. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Role]. |
| /// |
| /// 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. |
| async.Future<Role> delete( |
| core.String name, { |
| core.String etag, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if (etag != null) { |
| _queryParams['etag'] = [etag]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'DELETE', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Role.fromJson(data)); |
| } |
| |
| /// Gets the definition of a Role. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The `name` parameter's value depends on the target resource for |
| /// the request, namely [`roles`](/iam/reference/rest/v1/roles), |
| /// [`projects`](/iam/reference/rest/v1/projects.roles), or |
| /// [`organizations`](/iam/reference/rest/v1/organizations.roles). Each |
| /// resource type's `name` value format is described below: * |
| /// [`roles.get()`](/iam/reference/rest/v1/roles/get): `roles/{ROLE_NAME}`. |
| /// This method returns results from all [predefined |
| /// roles](/iam/docs/understanding-roles#predefined_roles) in Cloud IAM. |
| /// Example request URL: `https://iam.googleapis.com/v1/roles/{ROLE_NAME}` * |
| /// [`projects.roles.get()`](/iam/reference/rest/v1/projects.roles/get): |
| /// `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method returns only |
| /// [custom roles](/iam/docs/understanding-custom-roles) that have been |
| /// created at the project level. Example request URL: |
| /// `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` |
| /// * |
| /// [`organizations.roles.get()`](/iam/reference/rest/v1/organizations.roles/get): |
| /// `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method |
| /// returns only [custom roles](/iam/docs/understanding-custom-roles) that |
| /// have been created at the organization level. Example request URL: |
| /// `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` |
| /// Note: Wildcard (*) values are invalid; you must specify a complete project |
| /// ID or organization ID. |
| /// Value must have pattern "^organizations/[^/]+/roles/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Role]. |
| /// |
| /// 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. |
| async.Future<Role> get( |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Role.fromJson(data)); |
| } |
| |
| /// Lists every predefined Role that IAM supports, or every custom role that |
| /// is defined for an organization or project. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - The `parent` parameter's value depends on the target resource |
| /// for the request, namely [`roles`](/iam/reference/rest/v1/roles), |
| /// [`projects`](/iam/reference/rest/v1/projects.roles), or |
| /// [`organizations`](/iam/reference/rest/v1/organizations.roles). Each |
| /// resource type's `parent` value format is described below: * |
| /// [`roles.list()`](/iam/reference/rest/v1/roles/list): An empty string. This |
| /// method doesn't require a resource; it simply returns all [predefined |
| /// roles](/iam/docs/understanding-roles#predefined_roles) in Cloud IAM. |
| /// Example request URL: `https://iam.googleapis.com/v1/roles` * |
| /// [`projects.roles.list()`](/iam/reference/rest/v1/projects.roles/list): |
| /// `projects/{PROJECT_ID}`. This method lists all project-level [custom |
| /// roles](/iam/docs/understanding-custom-roles). Example request URL: |
| /// `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles` * |
| /// [`organizations.roles.list()`](/iam/reference/rest/v1/organizations.roles/list): |
| /// `organizations/{ORGANIZATION_ID}`. This method lists all |
| /// organization-level [custom roles](/iam/docs/understanding-custom-roles). |
| /// Example request URL: |
| /// `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles` |
| /// Note: Wildcard (*) values are invalid; you must specify a complete project |
| /// ID or organization ID. |
| /// Value must have pattern "^organizations/[^/]+$". |
| /// |
| /// [pageSize] - Optional limit on the number of roles to include in the |
| /// response. The default is 300, and the maximum is 1,000. |
| /// |
| /// [pageToken] - Optional pagination token returned in an earlier |
| /// ListRolesResponse. |
| /// |
| /// [showDeleted] - Include Roles that have been deleted. |
| /// |
| /// [view] - Optional view for the returned Role objects. When `FULL` is |
| /// specified, the `includedPermissions` field is returned, which includes a |
| /// list of all permissions in the role. The default value is `BASIC`, which |
| /// does not return the `includedPermissions` field. |
| /// Possible string values are: |
| /// - "BASIC" : Omits the `included_permissions` field. This is the default |
| /// value. |
| /// - "FULL" : Returns all fields. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListRolesResponse]. |
| /// |
| /// 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. |
| async.Future<ListRolesResponse> list( |
| core.String parent, { |
| core.int pageSize, |
| core.String pageToken, |
| core.bool showDeleted, |
| core.String view, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if (showDeleted != null) { |
| _queryParams['showDeleted'] = ['${showDeleted}']; |
| } |
| if (view != null) { |
| _queryParams['view'] = [view]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/roles'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ListRolesResponse.fromJson(data)); |
| } |
| |
| /// Updates the definition of a custom Role. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The `name` parameter's value depends on the target resource for |
| /// the request, namely [`projects`](/iam/reference/rest/v1/projects.roles) or |
| /// [`organizations`](/iam/reference/rest/v1/organizations.roles). Each |
| /// resource type's `name` value format is described below: * |
| /// [`projects.roles.patch()`](/iam/reference/rest/v1/projects.roles/patch): |
| /// `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method updates only |
| /// [custom roles](/iam/docs/understanding-custom-roles) that have been |
| /// created at the project level. Example request URL: |
| /// `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` |
| /// * |
| /// [`organizations.roles.patch()`](/iam/reference/rest/v1/organizations.roles/patch): |
| /// `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method |
| /// updates only [custom roles](/iam/docs/understanding-custom-roles) that |
| /// have been created at the organization level. Example request URL: |
| /// `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` |
| /// Note: Wildcard (*) values are invalid; you must specify a complete project |
| /// ID or organization ID. |
| /// Value must have pattern "^organizations/[^/]+/roles/[^/]+$". |
| /// |
| /// [updateMask] - A mask describing which fields in the Role have changed. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Role]. |
| /// |
| /// 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. |
| async.Future<Role> patch( |
| Role request, |
| core.String name, { |
| core.String updateMask, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if (updateMask != null) { |
| _queryParams['updateMask'] = [updateMask]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'PATCH', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Role.fromJson(data)); |
| } |
| |
| /// Undeletes a custom Role. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The `name` parameter's value depends on the target resource for |
| /// the request, namely [`projects`](/iam/reference/rest/v1/projects.roles) or |
| /// [`organizations`](/iam/reference/rest/v1/organizations.roles). Each |
| /// resource type's `name` value format is described below: * |
| /// [`projects.roles.undelete()`](/iam/reference/rest/v1/projects.roles/undelete): |
| /// `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method undeletes only |
| /// [custom roles](/iam/docs/understanding-custom-roles) that have been |
| /// created at the project level. Example request URL: |
| /// `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` |
| /// * |
| /// [`organizations.roles.undelete()`](/iam/reference/rest/v1/organizations.roles/undelete): |
| /// `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method |
| /// undeletes only [custom roles](/iam/docs/understanding-custom-roles) that |
| /// have been created at the organization level. Example request URL: |
| /// `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` |
| /// Note: Wildcard (*) values are invalid; you must specify a complete project |
| /// ID or organization ID. |
| /// Value must have pattern "^organizations/[^/]+/roles/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Role]. |
| /// |
| /// 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. |
| async.Future<Role> undelete( |
| UndeleteRoleRequest request, |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':undelete'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Role.fromJson(data)); |
| } |
| } |
| |
| class PermissionsResourceApi { |
| final commons.ApiRequester _requester; |
| |
| PermissionsResourceApi(commons.ApiRequester client) : _requester = client; |
| |
| /// Lists every permission that you can test on a resource. A permission is |
| /// testable if you can check whether a member has that permission on the |
| /// resource. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [QueryTestablePermissionsResponse]. |
| /// |
| /// 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. |
| async.Future<QueryTestablePermissionsResponse> queryTestablePermissions( |
| QueryTestablePermissionsRequest request, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/permissions:queryTestablePermissions'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response |
| .then((data) => QueryTestablePermissionsResponse.fromJson(data)); |
| } |
| } |
| |
| class ProjectsResourceApi { |
| final commons.ApiRequester _requester; |
| |
| ProjectsRolesResourceApi get roles => ProjectsRolesResourceApi(_requester); |
| ProjectsServiceAccountsResourceApi get serviceAccounts => |
| ProjectsServiceAccountsResourceApi(_requester); |
| |
| ProjectsResourceApi(commons.ApiRequester client) : _requester = client; |
| } |
| |
| class ProjectsRolesResourceApi { |
| final commons.ApiRequester _requester; |
| |
| ProjectsRolesResourceApi(commons.ApiRequester client) : _requester = client; |
| |
| /// Creates a new custom Role. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - The `parent` parameter's value depends on the target resource |
| /// for the request, namely |
| /// [`projects`](/iam/reference/rest/v1/projects.roles) or |
| /// [`organizations`](/iam/reference/rest/v1/organizations.roles). Each |
| /// resource type's `parent` value format is described below: * |
| /// [`projects.roles.create()`](/iam/reference/rest/v1/projects.roles/create): |
| /// `projects/{PROJECT_ID}`. This method creates project-level [custom |
| /// roles](/iam/docs/understanding-custom-roles). Example request URL: |
| /// `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles` * |
| /// [`organizations.roles.create()`](/iam/reference/rest/v1/organizations.roles/create): |
| /// `organizations/{ORGANIZATION_ID}`. This method creates organization-level |
| /// [custom roles](/iam/docs/understanding-custom-roles). Example request URL: |
| /// `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles` |
| /// Note: Wildcard (*) values are invalid; you must specify a complete project |
| /// ID or organization ID. |
| /// Value must have pattern "^projects/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Role]. |
| /// |
| /// 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. |
| async.Future<Role> create( |
| CreateRoleRequest request, |
| core.String parent, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/roles'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Role.fromJson(data)); |
| } |
| |
| /// Deletes a custom Role. When you delete a custom role, the following |
| /// changes occur immediately: * You cannot bind a member to the custom role |
| /// in an IAM Policy. * Existing bindings to the custom role are not changed, |
| /// but they have no effect. * By default, the response from ListRoles does |
| /// not include the custom role. You have 7 days to undelete the custom role. |
| /// After 7 days, the following changes occur: * The custom role is |
| /// permanently deleted and cannot be recovered. * If an IAM policy contains a |
| /// binding to the custom role, the binding is permanently removed. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The `name` parameter's value depends on the target resource for |
| /// the request, namely [`projects`](/iam/reference/rest/v1/projects.roles) or |
| /// [`organizations`](/iam/reference/rest/v1/organizations.roles). Each |
| /// resource type's `name` value format is described below: * |
| /// [`projects.roles.delete()`](/iam/reference/rest/v1/projects.roles/delete): |
| /// `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method deletes only |
| /// [custom roles](/iam/docs/understanding-custom-roles) that have been |
| /// created at the project level. Example request URL: |
| /// `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` |
| /// * |
| /// [`organizations.roles.delete()`](/iam/reference/rest/v1/organizations.roles/delete): |
| /// `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method |
| /// deletes only [custom roles](/iam/docs/understanding-custom-roles) that |
| /// have been created at the organization level. Example request URL: |
| /// `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` |
| /// Note: Wildcard (*) values are invalid; you must specify a complete project |
| /// ID or organization ID. |
| /// Value must have pattern "^projects/[^/]+/roles/[^/]+$". |
| /// |
| /// [etag] - Used to perform a consistent read-modify-write. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Role]. |
| /// |
| /// 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. |
| async.Future<Role> delete( |
| core.String name, { |
| core.String etag, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if (etag != null) { |
| _queryParams['etag'] = [etag]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'DELETE', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Role.fromJson(data)); |
| } |
| |
| /// Gets the definition of a Role. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The `name` parameter's value depends on the target resource for |
| /// the request, namely [`roles`](/iam/reference/rest/v1/roles), |
| /// [`projects`](/iam/reference/rest/v1/projects.roles), or |
| /// [`organizations`](/iam/reference/rest/v1/organizations.roles). Each |
| /// resource type's `name` value format is described below: * |
| /// [`roles.get()`](/iam/reference/rest/v1/roles/get): `roles/{ROLE_NAME}`. |
| /// This method returns results from all [predefined |
| /// roles](/iam/docs/understanding-roles#predefined_roles) in Cloud IAM. |
| /// Example request URL: `https://iam.googleapis.com/v1/roles/{ROLE_NAME}` * |
| /// [`projects.roles.get()`](/iam/reference/rest/v1/projects.roles/get): |
| /// `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method returns only |
| /// [custom roles](/iam/docs/understanding-custom-roles) that have been |
| /// created at the project level. Example request URL: |
| /// `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` |
| /// * |
| /// [`organizations.roles.get()`](/iam/reference/rest/v1/organizations.roles/get): |
| /// `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method |
| /// returns only [custom roles](/iam/docs/understanding-custom-roles) that |
| /// have been created at the organization level. Example request URL: |
| /// `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` |
| /// Note: Wildcard (*) values are invalid; you must specify a complete project |
| /// ID or organization ID. |
| /// Value must have pattern "^projects/[^/]+/roles/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Role]. |
| /// |
| /// 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. |
| async.Future<Role> get( |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Role.fromJson(data)); |
| } |
| |
| /// Lists every predefined Role that IAM supports, or every custom role that |
| /// is defined for an organization or project. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - The `parent` parameter's value depends on the target resource |
| /// for the request, namely [`roles`](/iam/reference/rest/v1/roles), |
| /// [`projects`](/iam/reference/rest/v1/projects.roles), or |
| /// [`organizations`](/iam/reference/rest/v1/organizations.roles). Each |
| /// resource type's `parent` value format is described below: * |
| /// [`roles.list()`](/iam/reference/rest/v1/roles/list): An empty string. This |
| /// method doesn't require a resource; it simply returns all [predefined |
| /// roles](/iam/docs/understanding-roles#predefined_roles) in Cloud IAM. |
| /// Example request URL: `https://iam.googleapis.com/v1/roles` * |
| /// [`projects.roles.list()`](/iam/reference/rest/v1/projects.roles/list): |
| /// `projects/{PROJECT_ID}`. This method lists all project-level [custom |
| /// roles](/iam/docs/understanding-custom-roles). Example request URL: |
| /// `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles` * |
| /// [`organizations.roles.list()`](/iam/reference/rest/v1/organizations.roles/list): |
| /// `organizations/{ORGANIZATION_ID}`. This method lists all |
| /// organization-level [custom roles](/iam/docs/understanding-custom-roles). |
| /// Example request URL: |
| /// `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles` |
| /// Note: Wildcard (*) values are invalid; you must specify a complete project |
| /// ID or organization ID. |
| /// Value must have pattern "^projects/[^/]+$". |
| /// |
| /// [pageSize] - Optional limit on the number of roles to include in the |
| /// response. The default is 300, and the maximum is 1,000. |
| /// |
| /// [pageToken] - Optional pagination token returned in an earlier |
| /// ListRolesResponse. |
| /// |
| /// [showDeleted] - Include Roles that have been deleted. |
| /// |
| /// [view] - Optional view for the returned Role objects. When `FULL` is |
| /// specified, the `includedPermissions` field is returned, which includes a |
| /// list of all permissions in the role. The default value is `BASIC`, which |
| /// does not return the `includedPermissions` field. |
| /// Possible string values are: |
| /// - "BASIC" : Omits the `included_permissions` field. This is the default |
| /// value. |
| /// - "FULL" : Returns all fields. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListRolesResponse]. |
| /// |
| /// 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. |
| async.Future<ListRolesResponse> list( |
| core.String parent, { |
| core.int pageSize, |
| core.String pageToken, |
| core.bool showDeleted, |
| core.String view, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if (showDeleted != null) { |
| _queryParams['showDeleted'] = ['${showDeleted}']; |
| } |
| if (view != null) { |
| _queryParams['view'] = [view]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/roles'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ListRolesResponse.fromJson(data)); |
| } |
| |
| /// Updates the definition of a custom Role. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The `name` parameter's value depends on the target resource for |
| /// the request, namely [`projects`](/iam/reference/rest/v1/projects.roles) or |
| /// [`organizations`](/iam/reference/rest/v1/organizations.roles). Each |
| /// resource type's `name` value format is described below: * |
| /// [`projects.roles.patch()`](/iam/reference/rest/v1/projects.roles/patch): |
| /// `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method updates only |
| /// [custom roles](/iam/docs/understanding-custom-roles) that have been |
| /// created at the project level. Example request URL: |
| /// `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` |
| /// * |
| /// [`organizations.roles.patch()`](/iam/reference/rest/v1/organizations.roles/patch): |
| /// `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method |
| /// updates only [custom roles](/iam/docs/understanding-custom-roles) that |
| /// have been created at the organization level. Example request URL: |
| /// `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` |
| /// Note: Wildcard (*) values are invalid; you must specify a complete project |
| /// ID or organization ID. |
| /// Value must have pattern "^projects/[^/]+/roles/[^/]+$". |
| /// |
| /// [updateMask] - A mask describing which fields in the Role have changed. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Role]. |
| /// |
| /// 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. |
| async.Future<Role> patch( |
| Role request, |
| core.String name, { |
| core.String updateMask, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if (updateMask != null) { |
| _queryParams['updateMask'] = [updateMask]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'PATCH', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Role.fromJson(data)); |
| } |
| |
| /// Undeletes a custom Role. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The `name` parameter's value depends on the target resource for |
| /// the request, namely [`projects`](/iam/reference/rest/v1/projects.roles) or |
| /// [`organizations`](/iam/reference/rest/v1/organizations.roles). Each |
| /// resource type's `name` value format is described below: * |
| /// [`projects.roles.undelete()`](/iam/reference/rest/v1/projects.roles/undelete): |
| /// `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method undeletes only |
| /// [custom roles](/iam/docs/understanding-custom-roles) that have been |
| /// created at the project level. Example request URL: |
| /// `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` |
| /// * |
| /// [`organizations.roles.undelete()`](/iam/reference/rest/v1/organizations.roles/undelete): |
| /// `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method |
| /// undeletes only [custom roles](/iam/docs/understanding-custom-roles) that |
| /// have been created at the organization level. Example request URL: |
| /// `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` |
| /// Note: Wildcard (*) values are invalid; you must specify a complete project |
| /// ID or organization ID. |
| /// Value must have pattern "^projects/[^/]+/roles/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Role]. |
| /// |
| /// 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. |
| async.Future<Role> undelete( |
| UndeleteRoleRequest request, |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':undelete'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Role.fromJson(data)); |
| } |
| } |
| |
| class ProjectsServiceAccountsResourceApi { |
| final commons.ApiRequester _requester; |
| |
| ProjectsServiceAccountsKeysResourceApi get keys => |
| ProjectsServiceAccountsKeysResourceApi(_requester); |
| |
| ProjectsServiceAccountsResourceApi(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Creates a ServiceAccount. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The resource name of the project associated with the |
| /// service accounts, such as `projects/my-project-123`. |
| /// Value must have pattern "^projects/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ServiceAccount]. |
| /// |
| /// 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. |
| async.Future<ServiceAccount> create( |
| CreateServiceAccountRequest request, |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$name') + |
| '/serviceAccounts'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ServiceAccount.fromJson(data)); |
| } |
| |
| /// Deletes a ServiceAccount. **Warning:** After you delete a service account, |
| /// you might not be able to undelete it. If you know that you need to |
| /// re-enable the service account in the future, use DisableServiceAccount |
| /// instead. If you delete a service account, IAM permanently removes the |
| /// service account 30 days later. Google Cloud cannot recover the service |
| /// account after it is permanently removed, even if you file a support |
| /// request. To help avoid unplanned outages, we recommend that you disable |
| /// the service account before you delete it. Use DisableServiceAccount to |
| /// disable the service account, then wait at least 24 hours and watch for |
| /// unintended consequences. If there are no unintended consequences, you can |
| /// delete the service account. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The resource name of the service account in the |
| /// following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using |
| /// `-` as a wildcard for the `PROJECT_ID` will infer the project from the |
| /// account. The `ACCOUNT` value can be the `email` address or the `unique_id` |
| /// of the service account. |
| /// Value must have pattern "^projects/[^/]+/serviceAccounts/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Empty]. |
| /// |
| /// 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. |
| async.Future<Empty> delete( |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'DELETE', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Empty.fromJson(data)); |
| } |
| |
| /// Disables a ServiceAccount immediately. If an application uses the service |
| /// account to authenticate, that application can no longer call Google APIs |
| /// or access Google Cloud resources. Existing access tokens for the service |
| /// account are rejected, and requests for new access tokens will fail. To |
| /// re-enable the service account, use EnableServiceAccount. After you |
| /// re-enable the service account, its existing access tokens will be |
| /// accepted, and you can request new access tokens. To help avoid unplanned |
| /// outages, we recommend that you disable the service account before you |
| /// delete it. Use this method to disable the service account, then wait at |
| /// least 24 hours and watch for unintended consequences. If there are no |
| /// unintended consequences, you can delete the service account with |
| /// DeleteServiceAccount. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The resource name of the service account in the following format: |
| /// `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using `-` as a wildcard |
| /// for the `PROJECT_ID` will infer the project from the account. The |
| /// `ACCOUNT` value can be the `email` address or the `unique_id` of the |
| /// service account. |
| /// Value must have pattern "^projects/[^/]+/serviceAccounts/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Empty]. |
| /// |
| /// 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. |
| async.Future<Empty> disable( |
| DisableServiceAccountRequest request, |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':disable'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Empty.fromJson(data)); |
| } |
| |
| /// Enables a ServiceAccount that was disabled by DisableServiceAccount. If |
| /// the service account is already enabled, then this method has no effect. If |
| /// the service account was disabled by other means—for example, if Google |
| /// disabled the service account because it was compromised—you cannot use |
| /// this method to enable the service account. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The resource name of the service account in the following format: |
| /// `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using `-` as a wildcard |
| /// for the `PROJECT_ID` will infer the project from the account. The |
| /// `ACCOUNT` value can be the `email` address or the `unique_id` of the |
| /// service account. |
| /// Value must have pattern "^projects/[^/]+/serviceAccounts/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Empty]. |
| /// |
| /// 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. |
| async.Future<Empty> enable( |
| EnableServiceAccountRequest request, |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':enable'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Empty.fromJson(data)); |
| } |
| |
| /// Gets a ServiceAccount. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The resource name of the service account in the |
| /// following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using |
| /// `-` as a wildcard for the `PROJECT_ID` will infer the project from the |
| /// account. The `ACCOUNT` value can be the `email` address or the `unique_id` |
| /// of the service account. |
| /// Value must have pattern "^projects/[^/]+/serviceAccounts/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ServiceAccount]. |
| /// |
| /// 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. |
| async.Future<ServiceAccount> get( |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ServiceAccount.fromJson(data)); |
| } |
| |
| /// Gets the IAM policy that is attached to a ServiceAccount. This IAM policy |
| /// specifies which members have access to the service account. This method |
| /// does not tell you whether the service account has been granted any roles |
| /// on other resources. To check whether a service account has role grants on |
| /// a resource, use the `getIamPolicy` method for that resource. For example, |
| /// to view the role grants for a project, call the Resource Manager API's |
| /// [`projects.getIamPolicy`](https://cloud.google.com/resource-manager/reference/rest/v1/projects/getIamPolicy) |
| /// method. |
| /// |
| /// Request parameters: |
| /// |
| /// [resource] - REQUIRED: The resource for which the policy is being |
| /// requested. See the operation documentation for the appropriate value for |
| /// this field. |
| /// Value must have pattern "^projects/[^/]+/serviceAccounts/[^/]+$". |
| /// |
| /// [options_requestedPolicyVersion] - Optional. The policy format version to |
| /// be returned. Valid values are 0, 1, and 3. Requests specifying an invalid |
| /// value will be rejected. Requests for policies with any conditional |
| /// bindings must specify version 3. Policies without any conditional bindings |
| /// may specify any valid value or leave the field unset. To learn which |
| /// resources support conditions in their IAM policies, see the [IAM |
| /// documentation](https://cloud.google.com/iam/help/conditions/resource-policies). |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Policy]. |
| /// |
| /// 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. |
| async.Future<Policy> getIamPolicy( |
| core.String resource, { |
| core.int options_requestedPolicyVersion, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (resource == null) { |
| throw core.ArgumentError('Parameter resource is required.'); |
| } |
| if (options_requestedPolicyVersion != null) { |
| _queryParams['options.requestedPolicyVersion'] = [ |
| '${options_requestedPolicyVersion}' |
| ]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$resource') + |
| ':getIamPolicy'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Policy.fromJson(data)); |
| } |
| |
| /// Lists every ServiceAccount that belongs to a specific project. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The resource name of the project associated with the |
| /// service accounts, such as `projects/my-project-123`. |
| /// Value must have pattern "^projects/[^/]+$". |
| /// |
| /// [pageSize] - Optional limit on the number of service accounts to include |
| /// in the response. Further accounts can subsequently be obtained by |
| /// including the ListServiceAccountsResponse.next_page_token in a subsequent |
| /// request. The default is 20, and the maximum is 100. |
| /// |
| /// [pageToken] - Optional pagination token returned in an earlier |
| /// ListServiceAccountsResponse.next_page_token. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListServiceAccountsResponse]. |
| /// |
| /// 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. |
| async.Future<ListServiceAccountsResponse> list( |
| core.String name, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$name') + |
| '/serviceAccounts'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ListServiceAccountsResponse.fromJson(data)); |
| } |
| |
| /// Patches a ServiceAccount. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The resource name of the service account. Use one of the |
| /// following formats: * |
| /// `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * |
| /// `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you |
| /// can use the `-` wildcard character instead of the project ID: * |
| /// `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * |
| /// `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the |
| /// `-` wildcard character, because it can cause response messages to contain |
| /// misleading error codes. For example, if you try to get the service account |
| /// `projects/-/serviceAccounts/fake@example.com`, which does not exist, the |
| /// response contains an HTTP `403 Forbidden` error instead of a `404 Not |
| /// Found` error. |
| /// Value must have pattern "^projects/[^/]+/serviceAccounts/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ServiceAccount]. |
| /// |
| /// 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. |
| async.Future<ServiceAccount> patch( |
| PatchServiceAccountRequest request, |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'PATCH', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ServiceAccount.fromJson(data)); |
| } |
| |
| /// Sets the IAM policy that is attached to a ServiceAccount. Use this method |
| /// to grant or revoke access to the service account. For example, you could |
| /// grant a member the ability to impersonate the service account. This method |
| /// does not enable the service account to access other resources. To grant |
| /// roles to a service account on a resource, follow these steps: 1. Call the |
| /// resource's `getIamPolicy` method to get its current IAM policy. 2. Edit |
| /// the policy so that it binds the service account to an IAM role for the |
| /// resource. 3. Call the resource's `setIamPolicy` method to update its IAM |
| /// policy. For detailed instructions, see [Granting roles to a service |
| /// account for specific |
| /// resources](https://cloud.google.com/iam/help/service-accounts/granting-access-to-service-accounts). |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [resource] - REQUIRED: The resource for which the policy is being |
| /// specified. See the operation documentation for the appropriate value for |
| /// this field. |
| /// Value must have pattern "^projects/[^/]+/serviceAccounts/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Policy]. |
| /// |
| /// 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. |
| async.Future<Policy> setIamPolicy( |
| SetIamPolicyRequest request, |
| core.String resource, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (resource == null) { |
| throw core.ArgumentError('Parameter resource is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$resource') + |
| ':setIamPolicy'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Policy.fromJson(data)); |
| } |
| |
| /// **Note:** This method is deprecated and will stop working on July 1, 2021. |
| /// Use the |
| /// [`signBlob`](https://cloud.google.com/iam/help/rest-credentials/v1/projects.serviceAccounts/signBlob) |
| /// method in the IAM Service Account Credentials API instead. If you |
| /// currently use this method, see the [migration |
| /// guide](https://cloud.google.com/iam/help/credentials/migrate-api) for |
| /// instructions. Signs a blob using the system-managed private key for a |
| /// ServiceAccount. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. Deprecated. [Migrate to Service Account Credentials |
| /// API](https://cloud.google.com/iam/help/credentials/migrate-api). The |
| /// resource name of the service account in the following format: |
| /// `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using `-` as a wildcard |
| /// for the `PROJECT_ID` will infer the project from the account. The |
| /// `ACCOUNT` value can be the `email` address or the `unique_id` of the |
| /// service account. |
| /// Value must have pattern "^projects/[^/]+/serviceAccounts/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [SignBlobResponse]. |
| /// |
| /// 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. |
| async.Future<SignBlobResponse> signBlob( |
| SignBlobRequest request, |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':signBlob'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => SignBlobResponse.fromJson(data)); |
| } |
| |
| /// **Note:** This method is deprecated and will stop working on July 1, 2021. |
| /// Use the |
| /// [`signJwt`](https://cloud.google.com/iam/help/rest-credentials/v1/projects.serviceAccounts/signJwt) |
| /// method in the IAM Service Account Credentials API instead. If you |
| /// currently use this method, see the [migration |
| /// guide](https://cloud.google.com/iam/help/credentials/migrate-api) for |
| /// instructions. Signs a JSON Web Token (JWT) using the system-managed |
| /// private key for a ServiceAccount. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. Deprecated. [Migrate to Service Account Credentials |
| /// API](https://cloud.google.com/iam/help/credentials/migrate-api). The |
| /// resource name of the service account in the following format: |
| /// `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using `-` as a wildcard |
| /// for the `PROJECT_ID` will infer the project from the account. The |
| /// `ACCOUNT` value can be the `email` address or the `unique_id` of the |
| /// service account. |
| /// Value must have pattern "^projects/[^/]+/serviceAccounts/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [SignJwtResponse]. |
| /// |
| /// 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. |
| async.Future<SignJwtResponse> signJwt( |
| SignJwtRequest request, |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':signJwt'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => SignJwtResponse.fromJson(data)); |
| } |
| |
| /// Tests whether the caller has the specified permissions on a |
| /// ServiceAccount. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [resource] - REQUIRED: The resource for which the policy detail is being |
| /// requested. See the operation documentation for the appropriate value for |
| /// this field. |
| /// Value must have pattern "^projects/[^/]+/serviceAccounts/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [TestIamPermissionsResponse]. |
| /// |
| /// 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. |
| async.Future<TestIamPermissionsResponse> testIamPermissions( |
| TestIamPermissionsRequest request, |
| core.String resource, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (resource == null) { |
| throw core.ArgumentError('Parameter resource is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$resource') + |
| ':testIamPermissions'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => TestIamPermissionsResponse.fromJson(data)); |
| } |
| |
| /// Restores a deleted ServiceAccount. **Important:** It is not always |
| /// possible to restore a deleted service account. Use this method only as a |
| /// last resort. After you delete a service account, IAM permanently removes |
| /// the service account 30 days later. There is no way to restore a deleted |
| /// service account that has been permanently removed. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The resource name of the service account in the following format: |
| /// `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT_UNIQUE_ID}`. Using `-` as |
| /// a wildcard for the `PROJECT_ID` will infer the project from the account. |
| /// Value must have pattern "^projects/[^/]+/serviceAccounts/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [UndeleteServiceAccountResponse]. |
| /// |
| /// 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. |
| async.Future<UndeleteServiceAccountResponse> undelete( |
| UndeleteServiceAccountRequest request, |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':undelete'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response |
| .then((data) => UndeleteServiceAccountResponse.fromJson(data)); |
| } |
| |
| /// **Note:** We are in the process of deprecating this method. Use |
| /// PatchServiceAccount instead. Updates a ServiceAccount. You can update only |
| /// the `display_name` and `description` fields. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The resource name of the service account. Use one of the |
| /// following formats: * |
| /// `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * |
| /// `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you |
| /// can use the `-` wildcard character instead of the project ID: * |
| /// `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * |
| /// `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the |
| /// `-` wildcard character, because it can cause response messages to contain |
| /// misleading error codes. For example, if you try to get the service account |
| /// `projects/-/serviceAccounts/fake@example.com`, which does not exist, the |
| /// response contains an HTTP `403 Forbidden` error instead of a `404 Not |
| /// Found` error. |
| /// Value must have pattern "^projects/[^/]+/serviceAccounts/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ServiceAccount]. |
| /// |
| /// 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. |
| async.Future<ServiceAccount> update( |
| ServiceAccount request, |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'PUT', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ServiceAccount.fromJson(data)); |
| } |
| } |
| |
| class ProjectsServiceAccountsKeysResourceApi { |
| final commons.ApiRequester _requester; |
| |
| ProjectsServiceAccountsKeysResourceApi(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Creates a ServiceAccountKey. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The resource name of the service account in the |
| /// following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using |
| /// `-` as a wildcard for the `PROJECT_ID` will infer the project from the |
| /// account. The `ACCOUNT` value can be the `email` address or the `unique_id` |
| /// of the service account. |
| /// Value must have pattern "^projects/[^/]+/serviceAccounts/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ServiceAccountKey]. |
| /// |
| /// 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. |
| async.Future<ServiceAccountKey> create( |
| CreateServiceAccountKeyRequest request, |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + '/keys'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ServiceAccountKey.fromJson(data)); |
| } |
| |
| /// Deletes a ServiceAccountKey. Deleting a service account key does not |
| /// revoke short-lived credentials that have been issued based on the service |
| /// account key. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The resource name of the service account key in the |
| /// following format: |
| /// `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}`. Using `-` as |
| /// a wildcard for the `PROJECT_ID` will infer the project from the account. |
| /// The `ACCOUNT` value can be the `email` address or the `unique_id` of the |
| /// service account. |
| /// Value must have pattern |
| /// "^projects/[^/]+/serviceAccounts/[^/]+/keys/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Empty]. |
| /// |
| /// 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. |
| async.Future<Empty> delete( |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'DELETE', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Empty.fromJson(data)); |
| } |
| |
| /// Gets a ServiceAccountKey. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The resource name of the service account key in the |
| /// following format: |
| /// `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}`. Using `-` as |
| /// a wildcard for the `PROJECT_ID` will infer the project from the account. |
| /// The `ACCOUNT` value can be the `email` address or the `unique_id` of the |
| /// service account. |
| /// Value must have pattern |
| /// "^projects/[^/]+/serviceAccounts/[^/]+/keys/[^/]+$". |
| /// |
| /// [publicKeyType] - The output format of the public key requested. X509_PEM |
| /// is the default output format. |
| /// Possible string values are: |
| /// - "TYPE_NONE" : Unspecified. Returns nothing here. |
| /// - "TYPE_X509_PEM_FILE" : X509 PEM format. |
| /// - "TYPE_RAW_PUBLIC_KEY" : Raw public key. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ServiceAccountKey]. |
| /// |
| /// 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. |
| async.Future<ServiceAccountKey> get( |
| core.String name, { |
| core.String publicKeyType, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if (publicKeyType != null) { |
| _queryParams['publicKeyType'] = [publicKeyType]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ServiceAccountKey.fromJson(data)); |
| } |
| |
| /// Lists every ServiceAccountKey for a service account. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The resource name of the service account in the |
| /// following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using |
| /// `-` as a wildcard for the `PROJECT_ID`, will infer the project from the |
| /// account. The `ACCOUNT` value can be the `email` address or the `unique_id` |
| /// of the service account. |
| /// Value must have pattern "^projects/[^/]+/serviceAccounts/[^/]+$". |
| /// |
| /// [keyTypes] - Filters the types of keys the user wants to include in the |
| /// list response. Duplicate key types are not allowed. If no key type is |
| /// provided, all keys are returned. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListServiceAccountKeysResponse]. |
| /// |
| /// 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. |
| async.Future<ListServiceAccountKeysResponse> list( |
| core.String name, { |
| core.List<core.String> keyTypes, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if (keyTypes != null) { |
| _queryParams['keyTypes'] = keyTypes; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + '/keys'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response |
| .then((data) => ListServiceAccountKeysResponse.fromJson(data)); |
| } |
| |
| /// Creates a ServiceAccountKey, using a public key that you provide. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The resource name of the service account in the following format: |
| /// `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using `-` as a wildcard |
| /// for the `PROJECT_ID` will infer the project from the account. The |
| /// `ACCOUNT` value can be the `email` address or the `unique_id` of the |
| /// service account. |
| /// Value must have pattern "^projects/[^/]+/serviceAccounts/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ServiceAccountKey]. |
| /// |
| /// 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. |
| async.Future<ServiceAccountKey> upload( |
| UploadServiceAccountKeyRequest request, |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + '/keys:upload'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ServiceAccountKey.fromJson(data)); |
| } |
| } |
| |
| class RolesResourceApi { |
| final commons.ApiRequester _requester; |
| |
| RolesResourceApi(commons.ApiRequester client) : _requester = client; |
| |
| /// Gets the definition of a Role. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The `name` parameter's value depends on the target resource for |
| /// the request, namely [`roles`](/iam/reference/rest/v1/roles), |
| /// [`projects`](/iam/reference/rest/v1/projects.roles), or |
| /// [`organizations`](/iam/reference/rest/v1/organizations.roles). Each |
| /// resource type's `name` value format is described below: * |
| /// [`roles.get()`](/iam/reference/rest/v1/roles/get): `roles/{ROLE_NAME}`. |
| /// This method returns results from all [predefined |
| /// roles](/iam/docs/understanding-roles#predefined_roles) in Cloud IAM. |
| /// Example request URL: `https://iam.googleapis.com/v1/roles/{ROLE_NAME}` * |
| /// [`projects.roles.get()`](/iam/reference/rest/v1/projects.roles/get): |
| /// `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method returns only |
| /// [custom roles](/iam/docs/understanding-custom-roles) that have been |
| /// created at the project level. Example request URL: |
| /// `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` |
| /// * |
| /// [`organizations.roles.get()`](/iam/reference/rest/v1/organizations.roles/get): |
| /// `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method |
| /// returns only [custom roles](/iam/docs/understanding-custom-roles) that |
| /// have been created at the organization level. Example request URL: |
| /// `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` |
| /// Note: Wildcard (*) values are invalid; you must specify a complete project |
| /// ID or organization ID. |
| /// Value must have pattern "^roles/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Role]. |
| /// |
| /// 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. |
| async.Future<Role> get( |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Role.fromJson(data)); |
| } |
| |
| /// Lists every predefined Role that IAM supports, or every custom role that |
| /// is defined for an organization or project. |
| /// |
| /// Request parameters: |
| /// |
| /// [pageSize] - Optional limit on the number of roles to include in the |
| /// response. The default is 300, and the maximum is 1,000. |
| /// |
| /// [pageToken] - Optional pagination token returned in an earlier |
| /// ListRolesResponse. |
| /// |
| /// [parent] - The `parent` parameter's value depends on the target resource |
| /// for the request, namely [`roles`](/iam/reference/rest/v1/roles), |
| /// [`projects`](/iam/reference/rest/v1/projects.roles), or |
| /// [`organizations`](/iam/reference/rest/v1/organizations.roles). Each |
| /// resource type's `parent` value format is described below: * |
| /// [`roles.list()`](/iam/reference/rest/v1/roles/list): An empty string. This |
| /// method doesn't require a resource; it simply returns all [predefined |
| /// roles](/iam/docs/understanding-roles#predefined_roles) in Cloud IAM. |
| /// Example request URL: `https://iam.googleapis.com/v1/roles` * |
| /// [`projects.roles.list()`](/iam/reference/rest/v1/projects.roles/list): |
| /// `projects/{PROJECT_ID}`. This method lists all project-level [custom |
| /// roles](/iam/docs/understanding-custom-roles). Example request URL: |
| /// `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles` * |
| /// [`organizations.roles.list()`](/iam/reference/rest/v1/organizations.roles/list): |
| /// `organizations/{ORGANIZATION_ID}`. This method lists all |
| /// organization-level [custom roles](/iam/docs/understanding-custom-roles). |
| /// Example request URL: |
| /// `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles` |
| /// Note: Wildcard (*) values are invalid; you must specify a complete project |
| /// ID or organization ID. |
| /// |
| /// [showDeleted] - Include Roles that have been deleted. |
| /// |
| /// [view] - Optional view for the returned Role objects. When `FULL` is |
| /// specified, the `includedPermissions` field is returned, which includes a |
| /// list of all permissions in the role. The default value is `BASIC`, which |
| /// does not return the `includedPermissions` field. |
| /// Possible string values are: |
| /// - "BASIC" : Omits the `included_permissions` field. This is the default |
| /// value. |
| /// - "FULL" : Returns all fields. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListRolesResponse]. |
| /// |
| /// 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. |
| async.Future<ListRolesResponse> list({ |
| core.int pageSize, |
| core.String pageToken, |
| core.String parent, |
| core.bool showDeleted, |
| core.String view, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if (parent != null) { |
| _queryParams['parent'] = [parent]; |
| } |
| if (showDeleted != null) { |
| _queryParams['showDeleted'] = ['${showDeleted}']; |
| } |
| if (view != null) { |
| _queryParams['view'] = [view]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/roles'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ListRolesResponse.fromJson(data)); |
| } |
| |
| /// Lists roles that can be granted on a Google Cloud resource. A role is |
| /// grantable if the IAM policy for the resource can contain bindings to the |
| /// role. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [QueryGrantableRolesResponse]. |
| /// |
| /// 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. |
| async.Future<QueryGrantableRolesResponse> queryGrantableRoles( |
| QueryGrantableRolesRequest request, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/roles:queryGrantableRoles'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => QueryGrantableRolesResponse.fromJson(data)); |
| } |
| } |
| |
| /// Audit log information specific to Cloud IAM admin APIs. This message is |
| /// serialized as an `Any` type in the `ServiceData` message of an `AuditLog` |
| /// message. |
| class AdminAuditData { |
| /// The permission_delta when when creating or updating a Role. |
| PermissionDelta permissionDelta; |
| |
| AdminAuditData(); |
| |
| AdminAuditData.fromJson(core.Map _json) { |
| if (_json.containsKey('permissionDelta')) { |
| permissionDelta = PermissionDelta.fromJson(_json['permissionDelta']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (permissionDelta != null) { |
| _json['permissionDelta'] = permissionDelta.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Specifies the audit configuration for a service. The configuration |
| /// determines which permission types are logged, and what identities, if any, |
| /// are exempted from logging. An AuditConfig must have one or more |
| /// AuditLogConfigs. If there are AuditConfigs for both `allServices` and a |
| /// specific service, the union of the two AuditConfigs is used for that |
| /// service: the log_types specified in each AuditConfig are enabled, and the |
| /// exempted_members in each AuditLogConfig are exempted. Example Policy with |
| /// multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", |
| /// "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ |
| /// "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": |
| /// "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", |
| /// "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": |
| /// "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For |
| /// sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ |
| /// logging. It also exempts jose@example.com from DATA_READ logging, and |
| /// aliya@example.com from DATA_WRITE logging. |
| class AuditConfig { |
| /// The configuration for logging of each type of permission. |
| core.List<AuditLogConfig> auditLogConfigs; |
| |
| /// Specifies a service that will be enabled for audit logging. For example, |
| /// `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a |
| /// special value that covers all services. |
| core.String service; |
| |
| AuditConfig(); |
| |
| AuditConfig.fromJson(core.Map _json) { |
| if (_json.containsKey('auditLogConfigs')) { |
| auditLogConfigs = (_json['auditLogConfigs'] as core.List) |
| .map<AuditLogConfig>((value) => AuditLogConfig.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('service')) { |
| service = _json['service'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (auditLogConfigs != null) { |
| _json['auditLogConfigs'] = |
| auditLogConfigs.map((value) => value.toJson()).toList(); |
| } |
| if (service != null) { |
| _json['service'] = service; |
| } |
| return _json; |
| } |
| } |
| |
| /// Audit log information specific to Cloud IAM. This message is serialized as |
| /// an `Any` type in the `ServiceData` message of an `AuditLog` message. |
| class AuditData { |
| /// Policy delta between the original policy and the newly set policy. |
| PolicyDelta policyDelta; |
| |
| AuditData(); |
| |
| AuditData.fromJson(core.Map _json) { |
| if (_json.containsKey('policyDelta')) { |
| policyDelta = PolicyDelta.fromJson(_json['policyDelta']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (policyDelta != null) { |
| _json['policyDelta'] = policyDelta.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Provides the configuration for logging a type of permissions. Example: { |
| /// "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ |
| /// "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables |
| /// 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from |
| /// DATA_READ logging. |
| class AuditLogConfig { |
| /// Specifies the identities that do not cause logging for this type of |
| /// permission. Follows the same format of Binding.members. |
| core.List<core.String> exemptedMembers; |
| |
| /// The log type that this config enables. |
| /// Possible string values are: |
| /// - "LOG_TYPE_UNSPECIFIED" : Default case. Should never be this. |
| /// - "ADMIN_READ" : Admin reads. Example: CloudIAM getIamPolicy |
| /// - "DATA_WRITE" : Data writes. Example: CloudSQL Users create |
| /// - "DATA_READ" : Data reads. Example: CloudSQL Users list |
| core.String logType; |
| |
| AuditLogConfig(); |
| |
| AuditLogConfig.fromJson(core.Map _json) { |
| if (_json.containsKey('exemptedMembers')) { |
| exemptedMembers = (_json['exemptedMembers'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('logType')) { |
| logType = _json['logType'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (exemptedMembers != null) { |
| _json['exemptedMembers'] = exemptedMembers; |
| } |
| if (logType != null) { |
| _json['logType'] = logType; |
| } |
| return _json; |
| } |
| } |
| |
| /// Contains information about an auditable service. |
| class AuditableService { |
| /// Public name of the service. For example, the service name for Cloud IAM is |
| /// 'iam.googleapis.com'. |
| core.String name; |
| |
| AuditableService(); |
| |
| AuditableService.fromJson(core.Map _json) { |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (name != null) { |
| _json['name'] = name; |
| } |
| return _json; |
| } |
| } |
| |
| /// Associates `members` with a `role`. |
| class Binding { |
| /// A client-specified ID for this binding. Expected to be globally unique to |
| /// support the internal bindings-by-ID API. |
| core.String bindingId; |
| |
| /// The condition that is associated with this binding. If the condition |
| /// evaluates to `true`, then this binding applies to the current request. If |
| /// the condition evaluates to `false`, then this binding does not apply to |
| /// the current request. However, a different role binding might grant the |
| /// same role to one or more of the members in this binding. To learn which |
| /// resources support conditions in their IAM policies, see the [IAM |
| /// documentation](https://cloud.google.com/iam/help/conditions/resource-policies). |
| Expr condition; |
| |
| /// Specifies the identities requesting access for a Cloud Platform resource. |
| /// `members` can have the following values: * `allUsers`: A special |
| /// identifier that represents anyone who is on the internet; with or without |
| /// a Google account. * `allAuthenticatedUsers`: A special identifier that |
| /// represents anyone who is authenticated with a Google account or a service |
| /// account. * `user:{emailid}`: An email address that represents a specific |
| /// Google account. For example, `alice@example.com` . * |
| /// `serviceAccount:{emailid}`: An email address that represents a service |
| /// account. For example, `my-other-app@appspot.gserviceaccount.com`. * |
| /// `group:{emailid}`: An email address that represents a Google group. For |
| /// example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: |
| /// An email address (plus unique identifier) representing a user that has |
| /// been recently deleted. For example, |
| /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, |
| /// this value reverts to `user:{emailid}` and the recovered user retains the |
| /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: |
| /// An email address (plus unique identifier) representing a service account |
| /// that has been recently deleted. For example, |
| /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If |
| /// the service account is undeleted, this value reverts to |
| /// `serviceAccount:{emailid}` and the undeleted service account retains the |
| /// role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email |
| /// address (plus unique identifier) representing a Google group that has been |
| /// recently deleted. For example, |
| /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, |
| /// this value reverts to `group:{emailid}` and the recovered group retains |
| /// the role in the binding. * `domain:{domain}`: The G Suite domain (primary) |
| /// that represents all the users of that domain. For example, `google.com` or |
| /// `example.com`. |
| core.List<core.String> members; |
| |
| /// Role that is assigned to `members`. For example, `roles/viewer`, |
| /// `roles/editor`, or `roles/owner`. |
| core.String role; |
| |
| Binding(); |
| |
| Binding.fromJson(core.Map _json) { |
| if (_json.containsKey('bindingId')) { |
| bindingId = _json['bindingId'] as core.String; |
| } |
| if (_json.containsKey('condition')) { |
| condition = Expr.fromJson(_json['condition']); |
| } |
| if (_json.containsKey('members')) { |
| members = (_json['members'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('role')) { |
| role = _json['role'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (bindingId != null) { |
| _json['bindingId'] = bindingId; |
| } |
| if (condition != null) { |
| _json['condition'] = condition.toJson(); |
| } |
| if (members != null) { |
| _json['members'] = members; |
| } |
| if (role != null) { |
| _json['role'] = role; |
| } |
| return _json; |
| } |
| } |
| |
| /// One delta entry for Binding. Each individual change (only one member in each |
| /// entry) to a binding will be a separate entry. |
| class BindingDelta { |
| /// The action that was performed on a Binding. Required |
| /// Possible string values are: |
| /// - "ACTION_UNSPECIFIED" : Unspecified. |
| /// - "ADD" : Addition of a Binding. |
| /// - "REMOVE" : Removal of a Binding. |
| core.String action; |
| |
| /// The condition that is associated with this binding. |
| Expr condition; |
| |
| /// A single identity requesting access for a Cloud Platform resource. Follows |
| /// the same format of Binding.members. Required |
| core.String member; |
| |
| /// Role that is assigned to `members`. For example, `roles/viewer`, |
| /// `roles/editor`, or `roles/owner`. Required |
| core.String role; |
| |
| BindingDelta(); |
| |
| BindingDelta.fromJson(core.Map _json) { |
| if (_json.containsKey('action')) { |
| action = _json['action'] as core.String; |
| } |
| if (_json.containsKey('condition')) { |
| condition = Expr.fromJson(_json['condition']); |
| } |
| if (_json.containsKey('member')) { |
| member = _json['member'] as core.String; |
| } |
| if (_json.containsKey('role')) { |
| role = _json['role'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (action != null) { |
| _json['action'] = action; |
| } |
| if (condition != null) { |
| _json['condition'] = condition.toJson(); |
| } |
| if (member != null) { |
| _json['member'] = member; |
| } |
| if (role != null) { |
| _json['role'] = role; |
| } |
| return _json; |
| } |
| } |
| |
| /// The request to create a new role. |
| class CreateRoleRequest { |
| /// The Role resource to create. |
| Role role; |
| |
| /// The role ID to use for this role. A role ID may contain alphanumeric |
| /// characters, underscores (`_`), and periods (`.`). It must contain a |
| /// minimum of 3 characters and a maximum of 64 characters. |
| core.String roleId; |
| |
| CreateRoleRequest(); |
| |
| CreateRoleRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('role')) { |
| role = Role.fromJson(_json['role']); |
| } |
| if (_json.containsKey('roleId')) { |
| roleId = _json['roleId'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (role != null) { |
| _json['role'] = role.toJson(); |
| } |
| if (roleId != null) { |
| _json['roleId'] = roleId; |
| } |
| return _json; |
| } |
| } |
| |
| /// The service account key create request. |
| class CreateServiceAccountKeyRequest { |
| /// Which type of key and algorithm to use for the key. The default is |
| /// currently a 2K RSA key. However this may change in the future. |
| /// Possible string values are: |
| /// - "KEY_ALG_UNSPECIFIED" : An unspecified key algorithm. |
| /// - "KEY_ALG_RSA_1024" : 1k RSA Key. |
| /// - "KEY_ALG_RSA_2048" : 2k RSA Key. |
| core.String keyAlgorithm; |
| |
| /// The output format of the private key. The default value is |
| /// `TYPE_GOOGLE_CREDENTIALS_FILE`, which is the Google Credentials File |
| /// format. |
| /// Possible string values are: |
| /// - "TYPE_UNSPECIFIED" : Unspecified. Equivalent to |
| /// `TYPE_GOOGLE_CREDENTIALS_FILE`. |
| /// - "TYPE_PKCS12_FILE" : PKCS12 format. The password for the PKCS12 file is |
| /// `notasecret`. For more information, see |
| /// https://tools.ietf.org/html/rfc7292. |
| /// - "TYPE_GOOGLE_CREDENTIALS_FILE" : Google Credentials File format. |
| core.String privateKeyType; |
| |
| CreateServiceAccountKeyRequest(); |
| |
| CreateServiceAccountKeyRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('keyAlgorithm')) { |
| keyAlgorithm = _json['keyAlgorithm'] as core.String; |
| } |
| if (_json.containsKey('privateKeyType')) { |
| privateKeyType = _json['privateKeyType'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (keyAlgorithm != null) { |
| _json['keyAlgorithm'] = keyAlgorithm; |
| } |
| if (privateKeyType != null) { |
| _json['privateKeyType'] = privateKeyType; |
| } |
| return _json; |
| } |
| } |
| |
| /// The service account create request. |
| class CreateServiceAccountRequest { |
| /// Required. The account id that is used to generate the service account |
| /// email address and a stable unique id. It is unique within a project, must |
| /// be 6-30 characters long, and match the regular expression |
| /// `[a-z]([-a-z0-9]*[a-z0-9])` to comply with RFC1035. |
| core.String accountId; |
| |
| /// The ServiceAccount resource to create. Currently, only the following |
| /// values are user assignable: `display_name` and `description`. |
| ServiceAccount serviceAccount; |
| |
| CreateServiceAccountRequest(); |
| |
| CreateServiceAccountRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('accountId')) { |
| accountId = _json['accountId'] as core.String; |
| } |
| if (_json.containsKey('serviceAccount')) { |
| serviceAccount = ServiceAccount.fromJson(_json['serviceAccount']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (accountId != null) { |
| _json['accountId'] = accountId; |
| } |
| if (serviceAccount != null) { |
| _json['serviceAccount'] = serviceAccount.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The service account disable request. |
| class DisableServiceAccountRequest { |
| DisableServiceAccountRequest(); |
| |
| DisableServiceAccountRequest.fromJson( |
| // ignore: avoid_unused_constructor_parameters |
| core.Map _json); |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| return _json; |
| } |
| } |
| |
| /// A generic empty message that you can re-use to avoid defining duplicated |
| /// empty messages in your APIs. A typical example is to use it as the request |
| /// or the response type of an API method. For instance: service Foo { rpc |
| /// Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON |
| /// representation for `Empty` is empty JSON object `{}`. |
| class Empty { |
| Empty(); |
| |
| Empty.fromJson( |
| // ignore: avoid_unused_constructor_parameters |
| core.Map _json); |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| return _json; |
| } |
| } |
| |
| /// The service account enable request. |
| class EnableServiceAccountRequest { |
| EnableServiceAccountRequest(); |
| |
| EnableServiceAccountRequest.fromJson( |
| // ignore: avoid_unused_constructor_parameters |
| core.Map _json); |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| return _json; |
| } |
| } |
| |
| /// Represents a textual expression in the Common Expression Language (CEL) |
| /// syntax. CEL is a C-like expression language. The syntax and semantics of CEL |
| /// are documented at https://github.com/google/cel-spec. Example (Comparison): |
| /// title: "Summary size limit" description: "Determines if a summary is less |
| /// than 100 chars" expression: "document.summary.size() < 100" Example |
| /// (Equality): title: "Requestor is owner" description: "Determines if |
| /// requestor is the document owner" expression: "document.owner == |
| /// request.auth.claims.email" Example (Logic): title: "Public documents" |
| /// description: "Determine whether the document should be publicly visible" |
| /// expression: "document.type != 'private' && document.type != 'internal'" |
| /// Example (Data Manipulation): title: "Notification string" description: |
| /// "Create a notification string with a timestamp." expression: "'New message |
| /// received at ' + string(document.create_time)" The exact variables and |
| /// functions that may be referenced within an expression are determined by the |
| /// service that evaluates it. See the service documentation for additional |
| /// information. |
| class Expr { |
| /// Optional. Description of the expression. This is a longer text which |
| /// describes the expression, e.g. when hovered over it in a UI. |
| core.String description; |
| |
| /// Textual representation of an expression in Common Expression Language |
| /// syntax. |
| core.String expression; |
| |
| /// Optional. String indicating the location of the expression for error |
| /// reporting, e.g. a file name and a position in the file. |
| core.String location; |
| |
| /// Optional. Title for the expression, i.e. a short string describing its |
| /// purpose. This can be used e.g. in UIs which allow to enter the expression. |
| core.String title; |
| |
| Expr(); |
| |
| Expr.fromJson(core.Map _json) { |
| if (_json.containsKey('description')) { |
| description = _json['description'] as core.String; |
| } |
| if (_json.containsKey('expression')) { |
| expression = _json['expression'] as core.String; |
| } |
| if (_json.containsKey('location')) { |
| location = _json['location'] as core.String; |
| } |
| if (_json.containsKey('title')) { |
| title = _json['title'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (description != null) { |
| _json['description'] = description; |
| } |
| if (expression != null) { |
| _json['expression'] = expression; |
| } |
| if (location != null) { |
| _json['location'] = location; |
| } |
| if (title != null) { |
| _json['title'] = title; |
| } |
| return _json; |
| } |
| } |
| |
| /// The request to lint a Cloud IAM policy object. |
| class LintPolicyRequest { |
| /// google.iam.v1.Binding.condition object to be linted. |
| Expr condition; |
| |
| /// The full resource name of the policy this lint request is about. The name |
| /// follows the Google Cloud Platform (GCP) resource format. For example, a |
| /// GCP project with ID `my-project` will be named |
| /// `//cloudresourcemanager.googleapis.com/projects/my-project`. The resource |
| /// name is not used to read the policy instance from the Cloud IAM database. |
| /// The candidate policy for lint has to be provided in the same request |
| /// object. |
| core.String fullResourceName; |
| |
| LintPolicyRequest(); |
| |
| LintPolicyRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('condition')) { |
| condition = Expr.fromJson(_json['condition']); |
| } |
| if (_json.containsKey('fullResourceName')) { |
| fullResourceName = _json['fullResourceName'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (condition != null) { |
| _json['condition'] = condition.toJson(); |
| } |
| if (fullResourceName != null) { |
| _json['fullResourceName'] = fullResourceName; |
| } |
| return _json; |
| } |
| } |
| |
| /// The response of a lint operation. An empty response indicates the operation |
| /// was able to fully execute and no lint issue was found. |
| class LintPolicyResponse { |
| /// List of lint results sorted by `severity` in descending order. |
| core.List<LintResult> lintResults; |
| |
| LintPolicyResponse(); |
| |
| LintPolicyResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('lintResults')) { |
| lintResults = (_json['lintResults'] as core.List) |
| .map<LintResult>((value) => LintResult.fromJson(value)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (lintResults != null) { |
| _json['lintResults'] = |
| lintResults.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Structured response of a single validation unit. |
| class LintResult { |
| /// Human readable debug message associated with the issue. |
| core.String debugMessage; |
| |
| /// The name of the field for which this lint result is about. For nested |
| /// messages `field_name` consists of names of the embedded fields separated |
| /// by period character. The top-level qualifier is the input object to lint |
| /// in the request. For example, the `field_name` value `condition.expression` |
| /// identifies a lint result for the `expression` field of the provided |
| /// condition. |
| core.String fieldName; |
| |
| /// The validation unit level. |
| /// Possible string values are: |
| /// - "LEVEL_UNSPECIFIED" : Level is unspecified. |
| /// - "CONDITION" : A validation unit which operates on an individual |
| /// condition within a binding. |
| core.String level; |
| |
| /// 0-based character position of problematic construct within the object |
| /// identified by `field_name`. Currently, this is populated only for |
| /// condition expression. |
| core.int locationOffset; |
| |
| /// The validation unit severity. |
| /// Possible string values are: |
| /// - "SEVERITY_UNSPECIFIED" : Severity is unspecified. |
| /// - "ERROR" : A validation unit returns an error only for critical issues. |
| /// If an attempt is made to set the problematic policy without rectifying the |
| /// critical issue, it causes the `setPolicy` operation to fail. |
| /// - "WARNING" : Any issue which is severe enough but does not cause an |
| /// error. For example, suspicious constructs in the input object will not |
| /// necessarily fail `setPolicy`, but there is a high likelihood that they |
| /// won't behave as expected during policy evaluation in `checkPolicy`. This |
| /// includes the following common scenarios: - Unsatisfiable condition: |
| /// Expired timestamp in date/time condition. - Ineffective condition: |
| /// Condition on a pair which is granted unconditionally in another binding of |
| /// the same policy. |
| /// - "NOTICE" : Reserved for the issues that are not severe as |
| /// `ERROR`/`WARNING`, but need special handling. For instance, messages about |
| /// skipped validation units are issued as `NOTICE`. |
| /// - "INFO" : Any informative statement which is not severe enough to raise |
| /// `ERROR`/`WARNING`/`NOTICE`, like auto-correction recommendations on the |
| /// input content. Note that current version of the linter does not utilize |
| /// `INFO`. |
| /// - "DEPRECATED" : Deprecated severity level. |
| core.String severity; |
| |
| /// The validation unit name, for instance |
| /// "lintValidationUnits/ConditionComplexityCheck". |
| core.String validationUnitName; |
| |
| LintResult(); |
| |
| LintResult.fromJson(core.Map _json) { |
| if (_json.containsKey('debugMessage')) { |
| debugMessage = _json['debugMessage'] as core.String; |
| } |
| if (_json.containsKey('fieldName')) { |
| fieldName = _json['fieldName'] as core.String; |
| } |
| if (_json.containsKey('level')) { |
| level = _json['level'] as core.String; |
| } |
| if (_json.containsKey('locationOffset')) { |
| locationOffset = _json['locationOffset'] as core.int; |
| } |
| if (_json.containsKey('severity')) { |
| severity = _json['severity'] as core.String; |
| } |
| if (_json.containsKey('validationUnitName')) { |
| validationUnitName = _json['validationUnitName'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (debugMessage != null) { |
| _json['debugMessage'] = debugMessage; |
| } |
| if (fieldName != null) { |
| _json['fieldName'] = fieldName; |
| } |
| if (level != null) { |
| _json['level'] = level; |
| } |
| if (locationOffset != null) { |
| _json['locationOffset'] = locationOffset; |
| } |
| if (severity != null) { |
| _json['severity'] = severity; |
| } |
| if (validationUnitName != null) { |
| _json['validationUnitName'] = validationUnitName; |
| } |
| return _json; |
| } |
| } |
| |
| /// The response containing the roles defined under a resource. |
| class ListRolesResponse { |
| /// To retrieve the next page of results, set `ListRolesRequest.page_token` to |
| /// this value. |
| core.String nextPageToken; |
| |
| /// The Roles defined on this resource. |
| core.List<Role> roles; |
| |
| ListRolesResponse(); |
| |
| ListRolesResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| if (_json.containsKey('roles')) { |
| roles = (_json['roles'] as core.List) |
| .map<Role>((value) => Role.fromJson(value)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| if (roles != null) { |
| _json['roles'] = roles.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The service account keys list response. |
| class ListServiceAccountKeysResponse { |
| /// The public keys for the service account. |
| core.List<ServiceAccountKey> keys; |
| |
| ListServiceAccountKeysResponse(); |
| |
| ListServiceAccountKeysResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('keys')) { |
| keys = (_json['keys'] as core.List) |
| .map<ServiceAccountKey>((value) => ServiceAccountKey.fromJson(value)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (keys != null) { |
| _json['keys'] = keys.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The service account list response. |
| class ListServiceAccountsResponse { |
| /// The list of matching service accounts. |
| core.List<ServiceAccount> accounts; |
| |
| /// To retrieve the next page of results, set |
| /// ListServiceAccountsRequest.page_token to this value. |
| core.String nextPageToken; |
| |
| ListServiceAccountsResponse(); |
| |
| ListServiceAccountsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('accounts')) { |
| accounts = (_json['accounts'] as core.List) |
| .map<ServiceAccount>((value) => ServiceAccount.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (accounts != null) { |
| _json['accounts'] = accounts.map((value) => value.toJson()).toList(); |
| } |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| return _json; |
| } |
| } |
| |
| /// The request for PatchServiceAccount. You can patch only the `display_name` |
| /// and `description` fields. You must use the `update_mask` field to specify |
| /// which of these fields you want to patch. Only the fields specified in the |
| /// request are guaranteed to be returned in the response. Other fields may be |
| /// empty in the response. |
| class PatchServiceAccountRequest { |
| ServiceAccount serviceAccount; |
| core.String updateMask; |
| |
| PatchServiceAccountRequest(); |
| |
| PatchServiceAccountRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('serviceAccount')) { |
| serviceAccount = ServiceAccount.fromJson(_json['serviceAccount']); |
| } |
| if (_json.containsKey('updateMask')) { |
| updateMask = _json['updateMask'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (serviceAccount != null) { |
| _json['serviceAccount'] = serviceAccount.toJson(); |
| } |
| if (updateMask != null) { |
| _json['updateMask'] = updateMask; |
| } |
| return _json; |
| } |
| } |
| |
| /// A permission which can be included by a role. |
| class Permission { |
| /// The service API associated with the permission is not enabled. |
| core.bool apiDisabled; |
| |
| /// The current custom role support level. |
| /// Possible string values are: |
| /// - "SUPPORTED" : Permission is fully supported for custom role use. |
| /// - "TESTING" : Permission is being tested to check custom role |
| /// compatibility. |
| /// - "NOT_SUPPORTED" : Permission is not supported for custom role use. |
| core.String customRolesSupportLevel; |
| |
| /// A brief description of what this Permission is used for. This permission |
| /// can ONLY be used in predefined roles. |
| core.String description; |
| |
| /// The name of this Permission. |
| core.String name; |
| core.bool onlyInPredefinedRoles; |
| |
| /// The preferred name for this permission. If present, then this permission |
| /// is an alias of, and equivalent to, the listed primary_permission. |
| core.String primaryPermission; |
| |
| /// The current launch stage of the permission. |
| /// Possible string values are: |
| /// - "ALPHA" : The permission is currently in an alpha phase. |
| /// - "BETA" : The permission is currently in a beta phase. |
| /// - "GA" : The permission is generally available. |
| /// - "DEPRECATED" : The permission is being deprecated. |
| core.String stage; |
| |
| /// The title of this Permission. |
| core.String title; |
| |
| Permission(); |
| |
| Permission.fromJson(core.Map _json) { |
| if (_json.containsKey('apiDisabled')) { |
| apiDisabled = _json['apiDisabled'] as core.bool; |
| } |
| if (_json.containsKey('customRolesSupportLevel')) { |
| customRolesSupportLevel = _json['customRolesSupportLevel'] as core.String; |
| } |
| if (_json.containsKey('description')) { |
| description = _json['description'] as core.String; |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('onlyInPredefinedRoles')) { |
| onlyInPredefinedRoles = _json['onlyInPredefinedRoles'] as core.bool; |
| } |
| if (_json.containsKey('primaryPermission')) { |
| primaryPermission = _json['primaryPermission'] as core.String; |
| } |
| if (_json.containsKey('stage')) { |
| stage = _json['stage'] as core.String; |
| } |
| if (_json.containsKey('title')) { |
| title = _json['title'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (apiDisabled != null) { |
| _json['apiDisabled'] = apiDisabled; |
| } |
| if (customRolesSupportLevel != null) { |
| _json['customRolesSupportLevel'] = customRolesSupportLevel; |
| } |
| if (description != null) { |
| _json['description'] = description; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (onlyInPredefinedRoles != null) { |
| _json['onlyInPredefinedRoles'] = onlyInPredefinedRoles; |
| } |
| if (primaryPermission != null) { |
| _json['primaryPermission'] = primaryPermission; |
| } |
| if (stage != null) { |
| _json['stage'] = stage; |
| } |
| if (title != null) { |
| _json['title'] = title; |
| } |
| return _json; |
| } |
| } |
| |
| /// A PermissionDelta message to record the added_permissions and |
| /// removed_permissions inside a role. |
| class PermissionDelta { |
| /// Added permissions. |
| core.List<core.String> addedPermissions; |
| |
| /// Removed permissions. |
| core.List<core.String> removedPermissions; |
| |
| PermissionDelta(); |
| |
| PermissionDelta.fromJson(core.Map _json) { |
| if (_json.containsKey('addedPermissions')) { |
| addedPermissions = (_json['addedPermissions'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('removedPermissions')) { |
| removedPermissions = (_json['removedPermissions'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (addedPermissions != null) { |
| _json['addedPermissions'] = addedPermissions; |
| } |
| if (removedPermissions != null) { |
| _json['removedPermissions'] = removedPermissions; |
| } |
| return _json; |
| } |
| } |
| |
| /// An Identity and Access Management (IAM) policy, which specifies access |
| /// controls for Google Cloud resources. A `Policy` is a collection of |
| /// `bindings`. A `binding` binds one or more `members` to a single `role`. |
| /// Members can be user accounts, service accounts, Google groups, and domains |
| /// (such as G Suite). A `role` is a named list of permissions; each `role` can |
| /// be an IAM predefined role or a user-created custom role. For some types of |
| /// Google Cloud resources, a `binding` can also specify a `condition`, which is |
| /// a logical expression that allows access to a resource only if the expression |
| /// evaluates to `true`. A condition can add constraints based on attributes of |
| /// the request, the resource, or both. To learn which resources support |
| /// conditions in their IAM policies, see the [IAM |
| /// documentation](https://cloud.google.com/iam/help/conditions/resource-policies). |
| /// **JSON example:** { "bindings": [ { "role": |
| /// "roles/resourcemanager.organizationAdmin", "members": [ |
| /// "user:mike@example.com", "group:admins@example.com", "domain:google.com", |
| /// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role": |
| /// "roles/resourcemanager.organizationViewer", "members": [ |
| /// "user:eve@example.com" ], "condition": { "title": "expirable access", |
| /// "description": "Does not grant access after Sep 2020", "expression": |
| /// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], "etag": |
| /// "BwWWja0YfJA=", "version": 3 } **YAML example:** bindings: - members: - |
| /// user:mike@example.com - group:admins@example.com - domain:google.com - |
| /// serviceAccount:my-project-id@appspot.gserviceaccount.com role: |
| /// roles/resourcemanager.organizationAdmin - members: - user:eve@example.com |
| /// role: roles/resourcemanager.organizationViewer condition: title: expirable |
| /// access description: Does not grant access after Sep 2020 expression: |
| /// request.time < timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - |
| /// version: 3 For a description of IAM and its features, see the [IAM |
| /// documentation](https://cloud.google.com/iam/docs/). |
| class Policy { |
| /// Specifies cloud audit logging configuration for this policy. |
| core.List<AuditConfig> auditConfigs; |
| |
| /// Associates a list of `members` to a `role`. Optionally, may specify a |
| /// `condition` that determines how and when the `bindings` are applied. Each |
| /// of the `bindings` must contain at least one member. |
| core.List<Binding> bindings; |
| |
| /// `etag` is used for optimistic concurrency control as a way to help prevent |
| /// simultaneous updates of a policy from overwriting each other. It is |
| /// strongly suggested that systems make use of the `etag` in the |
| /// read-modify-write cycle to perform policy updates in order to avoid race |
| /// conditions: An `etag` is returned in the response to `getIamPolicy`, and |
| /// systems are expected to put that etag in the request to `setIamPolicy` to |
| /// ensure that their change will be applied to the same version of the |
| /// policy. **Important:** If you use IAM Conditions, you must include the |
| /// `etag` field whenever you call `setIamPolicy`. If you omit this field, |
| /// then IAM allows you to overwrite a version `3` policy with a version `1` |
| /// policy, and all of the conditions in the version `3` policy are lost. |
| core.String etag; |
| core.List<core.int> get etagAsBytes => convert.base64.decode(etag); |
| |
| set etagAsBytes(core.List<core.int> _bytes) { |
| etag = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// Specifies the format of the policy. Valid values are `0`, `1`, and `3`. |
| /// Requests that specify an invalid value are rejected. Any operation that |
| /// affects conditional role bindings must specify version `3`. This |
| /// requirement applies to the following operations: * Getting a policy that |
| /// includes a conditional role binding * Adding a conditional role binding to |
| /// a policy * Changing a conditional role binding in a policy * Removing any |
| /// role binding, with or without a condition, from a policy that includes |
| /// conditions **Important:** If you use IAM Conditions, you must include the |
| /// `etag` field whenever you call `setIamPolicy`. If you omit this field, |
| /// then IAM allows you to overwrite a version `3` policy with a version `1` |
| /// policy, and all of the conditions in the version `3` policy are lost. If a |
| /// policy does not include any conditions, operations on that policy may |
| /// specify any valid version or leave the field unset. To learn which |
| /// resources support conditions in their IAM policies, see the [IAM |
| /// documentation](https://cloud.google.com/iam/help/conditions/resource-policies). |
| core.int version; |
| |
| Policy(); |
| |
| Policy.fromJson(core.Map _json) { |
| if (_json.containsKey('auditConfigs')) { |
| auditConfigs = (_json['auditConfigs'] as core.List) |
| .map<AuditConfig>((value) => AuditConfig.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('bindings')) { |
| bindings = (_json['bindings'] as core.List) |
| .map<Binding>((value) => Binding.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('etag')) { |
| etag = _json['etag'] as core.String; |
| } |
| if (_json.containsKey('version')) { |
| version = _json['version'] as core.int; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (auditConfigs != null) { |
| _json['auditConfigs'] = |
| auditConfigs.map((value) => value.toJson()).toList(); |
| } |
| if (bindings != null) { |
| _json['bindings'] = bindings.map((value) => value.toJson()).toList(); |
| } |
| if (etag != null) { |
| _json['etag'] = etag; |
| } |
| if (version != null) { |
| _json['version'] = version; |
| } |
| return _json; |
| } |
| } |
| |
| /// The difference delta between two policies. |
| class PolicyDelta { |
| /// The delta for Bindings between two policies. |
| core.List<BindingDelta> bindingDeltas; |
| |
| PolicyDelta(); |
| |
| PolicyDelta.fromJson(core.Map _json) { |
| if (_json.containsKey('bindingDeltas')) { |
| bindingDeltas = (_json['bindingDeltas'] as core.List) |
| .map<BindingDelta>((value) => BindingDelta.fromJson(value)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (bindingDeltas != null) { |
| _json['bindingDeltas'] = |
| bindingDeltas.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// A request to get the list of auditable services for a resource. |
| class QueryAuditableServicesRequest { |
| /// Required. The full resource name to query from the list of auditable |
| /// services. The name follows the Google Cloud Platform resource format. For |
| /// example, a Cloud Platform project with id `my-project` will be named |
| /// `//cloudresourcemanager.googleapis.com/projects/my-project`. |
| core.String fullResourceName; |
| |
| QueryAuditableServicesRequest(); |
| |
| QueryAuditableServicesRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('fullResourceName')) { |
| fullResourceName = _json['fullResourceName'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (fullResourceName != null) { |
| _json['fullResourceName'] = fullResourceName; |
| } |
| return _json; |
| } |
| } |
| |
| /// A response containing a list of auditable services for a resource. |
| class QueryAuditableServicesResponse { |
| /// The auditable services for a resource. |
| core.List<AuditableService> services; |
| |
| QueryAuditableServicesResponse(); |
| |
| QueryAuditableServicesResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('services')) { |
| services = (_json['services'] as core.List) |
| .map<AuditableService>((value) => AuditableService.fromJson(value)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (services != null) { |
| _json['services'] = services.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The grantable role query request. |
| class QueryGrantableRolesRequest { |
| /// Required. The full resource name to query from the list of grantable |
| /// roles. The name follows the Google Cloud Platform resource format. For |
| /// example, a Cloud Platform project with id `my-project` will be named |
| /// `//cloudresourcemanager.googleapis.com/projects/my-project`. |
| core.String fullResourceName; |
| |
| /// Optional limit on the number of roles to include in the response. The |
| /// default is 300, and the maximum is 1,000. |
| core.int pageSize; |
| |
| /// Optional pagination token returned in an earlier |
| /// QueryGrantableRolesResponse. |
| core.String pageToken; |
| |
| /// |
| /// Possible string values are: |
| /// - "BASIC" : Omits the `included_permissions` field. This is the default |
| /// value. |
| /// - "FULL" : Returns all fields. |
| core.String view; |
| |
| QueryGrantableRolesRequest(); |
| |
| QueryGrantableRolesRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('fullResourceName')) { |
| fullResourceName = _json['fullResourceName'] as core.String; |
| } |
| if (_json.containsKey('pageSize')) { |
| pageSize = _json['pageSize'] as core.int; |
| } |
| if (_json.containsKey('pageToken')) { |
| pageToken = _json['pageToken'] as core.String; |
| } |
| if (_json.containsKey('view')) { |
| view = _json['view'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (fullResourceName != null) { |
| _json['fullResourceName'] = fullResourceName; |
| } |
| if (pageSize != null) { |
| _json['pageSize'] = pageSize; |
| } |
| if (pageToken != null) { |
| _json['pageToken'] = pageToken; |
| } |
| if (view != null) { |
| _json['view'] = view; |
| } |
| return _json; |
| } |
| } |
| |
| /// The grantable role query response. |
| class QueryGrantableRolesResponse { |
| /// To retrieve the next page of results, set |
| /// `QueryGrantableRolesRequest.page_token` to this value. |
| core.String nextPageToken; |
| |
| /// The list of matching roles. |
| core.List<Role> roles; |
| |
| QueryGrantableRolesResponse(); |
| |
| QueryGrantableRolesResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| if (_json.containsKey('roles')) { |
| roles = (_json['roles'] as core.List) |
| .map<Role>((value) => Role.fromJson(value)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| if (roles != null) { |
| _json['roles'] = roles.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// A request to get permissions which can be tested on a resource. |
| class QueryTestablePermissionsRequest { |
| /// Required. The full resource name to query from the list of testable |
| /// permissions. The name follows the Google Cloud Platform resource format. |
| /// For example, a Cloud Platform project with id `my-project` will be named |
| /// `//cloudresourcemanager.googleapis.com/projects/my-project`. |
| core.String fullResourceName; |
| |
| /// Optional limit on the number of permissions to include in the response. |
| /// The default is 100, and the maximum is 1,000. |
| core.int pageSize; |
| |
| /// Optional pagination token returned in an earlier |
| /// QueryTestablePermissionsRequest. |
| core.String pageToken; |
| |
| QueryTestablePermissionsRequest(); |
| |
| QueryTestablePermissionsRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('fullResourceName')) { |
| fullResourceName = _json['fullResourceName'] as core.String; |
| } |
| if (_json.containsKey('pageSize')) { |
| pageSize = _json['pageSize'] as core.int; |
| } |
| if (_json.containsKey('pageToken')) { |
| pageToken = _json['pageToken'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (fullResourceName != null) { |
| _json['fullResourceName'] = fullResourceName; |
| } |
| if (pageSize != null) { |
| _json['pageSize'] = pageSize; |
| } |
| if (pageToken != null) { |
| _json['pageToken'] = pageToken; |
| } |
| return _json; |
| } |
| } |
| |
| /// The response containing permissions which can be tested on a resource. |
| class QueryTestablePermissionsResponse { |
| /// To retrieve the next page of results, set |
| /// `QueryTestableRolesRequest.page_token` to this value. |
| core.String nextPageToken; |
| |
| /// The Permissions testable on the requested resource. |
| core.List<Permission> permissions; |
| |
| QueryTestablePermissionsResponse(); |
| |
| QueryTestablePermissionsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| if (_json.containsKey('permissions')) { |
| permissions = (_json['permissions'] as core.List) |
| .map<Permission>((value) => Permission.fromJson(value)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| if (permissions != null) { |
| _json['permissions'] = |
| permissions.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// A role in the Identity and Access Management API. |
| class Role { |
| /// The current deleted state of the role. This field is read only. It will be |
| /// ignored in calls to CreateRole and UpdateRole. |
| core.bool deleted; |
| |
| /// Optional. A human-readable description for the role. |
| core.String description; |
| |
| /// Used to perform a consistent read-modify-write. |
| core.String etag; |
| core.List<core.int> get etagAsBytes => convert.base64.decode(etag); |
| |
| set etagAsBytes(core.List<core.int> _bytes) { |
| etag = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// The names of the permissions this role grants when bound in an IAM policy. |
| core.List<core.String> includedPermissions; |
| |
| /// The name of the role. When Role is used in CreateRole, the role name must |
| /// not be set. When Role is used in output and other input such as |
| /// UpdateRole, the role name is the complete path, e.g., roles/logging.viewer |
| /// for predefined roles and |
| /// organizations/{ORGANIZATION_ID}/roles/logging.viewer for custom roles. |
| core.String name; |
| |
| /// The current launch stage of the role. If the `ALPHA` launch stage has been |
| /// selected for a role, the `stage` field will not be included in the |
| /// returned definition for the role. |
| /// Possible string values are: |
| /// - "ALPHA" : The user has indicated this role is currently in an Alpha |
| /// phase. If this launch stage is selected, the `stage` field will not be |
| /// included when requesting the definition for a given role. |
| /// - "BETA" : The user has indicated this role is currently in a Beta phase. |
| /// - "GA" : The user has indicated this role is generally available. |
| /// - "DEPRECATED" : The user has indicated this role is being deprecated. |
| /// - "DISABLED" : This role is disabled and will not contribute permissions |
| /// to any members it is granted to in policies. |
| /// - "EAP" : The user has indicated this role is currently in an EAP phase. |
| core.String stage; |
| |
| /// Optional. A human-readable title for the role. Typically this is limited |
| /// to 100 UTF-8 bytes. |
| core.String title; |
| |
| Role(); |
| |
| Role.fromJson(core.Map _json) { |
| if (_json.containsKey('deleted')) { |
| deleted = _json['deleted'] as core.bool; |
| } |
| if (_json.containsKey('description')) { |
| description = _json['description'] as core.String; |
| } |
| if (_json.containsKey('etag')) { |
| etag = _json['etag'] as core.String; |
| } |
| if (_json.containsKey('includedPermissions')) { |
| includedPermissions = (_json['includedPermissions'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('stage')) { |
| stage = _json['stage'] as core.String; |
| } |
| if (_json.containsKey('title')) { |
| title = _json['title'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (deleted != null) { |
| _json['deleted'] = deleted; |
| } |
| if (description != null) { |
| _json['description'] = description; |
| } |
| if (etag != null) { |
| _json['etag'] = etag; |
| } |
| if (includedPermissions != null) { |
| _json['includedPermissions'] = includedPermissions; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (stage != null) { |
| _json['stage'] = stage; |
| } |
| if (title != null) { |
| _json['title'] = title; |
| } |
| return _json; |
| } |
| } |
| |
| /// An IAM service account. A service account is an account for an application |
| /// or a virtual machine (VM) instance, not a person. You can use a service |
| /// account to call Google APIs. To learn more, read the [overview of service |
| /// accounts](https://cloud.google.com/iam/help/service-accounts/overview). When |
| /// you create a service account, you specify the project ID that owns the |
| /// service account, as well as a name that must be unique within the project. |
| /// IAM uses these values to create an email address that identifies the service |
| /// account. |
| class ServiceAccount { |
| /// Optional. A user-specified, human-readable description of the service |
| /// account. The maximum length is 256 UTF-8 bytes. |
| core.String description; |
| |
| /// Output only. Whether the service account is disabled. |
| core.bool disabled; |
| |
| /// Optional. A user-specified, human-readable name for the service account. |
| /// The maximum length is 100 UTF-8 bytes. |
| core.String displayName; |
| |
| /// Output only. The email address of the service account. |
| core.String email; |
| |
| /// Deprecated. Do not use. |
| core.String etag; |
| core.List<core.int> get etagAsBytes => convert.base64.decode(etag); |
| |
| set etagAsBytes(core.List<core.int> _bytes) { |
| etag = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// The resource name of the service account. Use one of the following |
| /// formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * |
| /// `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you |
| /// can use the `-` wildcard character instead of the project ID: * |
| /// `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * |
| /// `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the |
| /// `-` wildcard character, because it can cause response messages to contain |
| /// misleading error codes. For example, if you try to get the service account |
| /// `projects/-/serviceAccounts/fake@example.com`, which does not exist, the |
| /// response contains an HTTP `403 Forbidden` error instead of a `404 Not |
| /// Found` error. |
| core.String name; |
| |
| /// Output only. The OAuth 2.0 client ID for the service account. |
| core.String oauth2ClientId; |
| |
| /// Output only. The ID of the project that owns the service account. |
| core.String projectId; |
| |
| /// Output only. The unique, stable numeric ID for the service account. Each |
| /// service account retains its unique ID even if you delete the service |
| /// account. For example, if you delete a service account, then create a new |
| /// service account with the same name, the new service account has a |
| /// different unique ID than the deleted service account. |
| core.String uniqueId; |
| |
| ServiceAccount(); |
| |
| ServiceAccount.fromJson(core.Map _json) { |
| if (_json.containsKey('description')) { |
| description = _json['description'] as core.String; |
| } |
| if (_json.containsKey('disabled')) { |
| disabled = _json['disabled'] as core.bool; |
| } |
| if (_json.containsKey('displayName')) { |
| displayName = _json['displayName'] as core.String; |
| } |
| if (_json.containsKey('email')) { |
| email = _json['email'] as core.String; |
| } |
| if (_json.containsKey('etag')) { |
| etag = _json['etag'] as core.String; |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('oauth2ClientId')) { |
| oauth2ClientId = _json['oauth2ClientId'] as core.String; |
| } |
| if (_json.containsKey('projectId')) { |
| projectId = _json['projectId'] as core.String; |
| } |
| if (_json.containsKey('uniqueId')) { |
| uniqueId = _json['uniqueId'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (description != null) { |
| _json['description'] = description; |
| } |
| if (disabled != null) { |
| _json['disabled'] = disabled; |
| } |
| if (displayName != null) { |
| _json['displayName'] = displayName; |
| } |
| if (email != null) { |
| _json['email'] = email; |
| } |
| if (etag != null) { |
| _json['etag'] = etag; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (oauth2ClientId != null) { |
| _json['oauth2ClientId'] = oauth2ClientId; |
| } |
| if (projectId != null) { |
| _json['projectId'] = projectId; |
| } |
| if (uniqueId != null) { |
| _json['uniqueId'] = uniqueId; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents a service account key. A service account has two sets of |
| /// key-pairs: user-managed, and system-managed. User-managed key-pairs can be |
| /// created and deleted by users. Users are responsible for rotating these keys |
| /// periodically to ensure security of their service accounts. Users retain the |
| /// private key of these key-pairs, and Google retains ONLY the public key. |
| /// System-managed keys are automatically rotated by Google, and are used for |
| /// signing for a maximum of two weeks. The rotation process is probabilistic, |
| /// and usage of the new key will gradually ramp up and down over the key's |
| /// lifetime. We recommend caching the public key set for a service account for |
| /// no more than 24 hours to ensure you have access to the latest keys. Public |
| /// keys for all service accounts are also published at the OAuth2 Service |
| /// Account API. |
| class ServiceAccountKey { |
| /// Specifies the algorithm (and possibly key size) for the key. |
| /// Possible string values are: |
| /// - "KEY_ALG_UNSPECIFIED" : An unspecified key algorithm. |
| /// - "KEY_ALG_RSA_1024" : 1k RSA Key. |
| /// - "KEY_ALG_RSA_2048" : 2k RSA Key. |
| core.String keyAlgorithm; |
| |
| /// The key origin. |
| /// Possible string values are: |
| /// - "ORIGIN_UNSPECIFIED" : Unspecified key origin. |
| /// - "USER_PROVIDED" : Key is provided by user. |
| /// - "GOOGLE_PROVIDED" : Key is provided by Google. |
| core.String keyOrigin; |
| |
| /// The key type. |
| /// Possible string values are: |
| /// - "KEY_TYPE_UNSPECIFIED" : Unspecified key type. The presence of this in |
| /// the message will immediately result in an error. |
| /// - "USER_MANAGED" : User-managed keys (managed and rotated by the user). |
| /// - "SYSTEM_MANAGED" : System-managed keys (managed and rotated by Google). |
| core.String keyType; |
| |
| /// The resource name of the service account key in the following format |
| /// `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}`. |
| core.String name; |
| |
| /// The private key data. Only provided in `CreateServiceAccountKey` |
| /// responses. Make sure to keep the private key data secure because it allows |
| /// for the assertion of the service account identity. When base64 decoded, |
| /// the private key data can be used to authenticate with Google API client |
| /// libraries and with gcloud auth activate-service-account. |
| core.String privateKeyData; |
| core.List<core.int> get privateKeyDataAsBytes => |
| convert.base64.decode(privateKeyData); |
| |
| set privateKeyDataAsBytes(core.List<core.int> _bytes) { |
| privateKeyData = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// The output format for the private key. Only provided in |
| /// `CreateServiceAccountKey` responses, not in `GetServiceAccountKey` or |
| /// `ListServiceAccountKey` responses. Google never exposes system-managed |
| /// private keys, and never retains user-managed private keys. |
| /// Possible string values are: |
| /// - "TYPE_UNSPECIFIED" : Unspecified. Equivalent to |
| /// `TYPE_GOOGLE_CREDENTIALS_FILE`. |
| /// - "TYPE_PKCS12_FILE" : PKCS12 format. The password for the PKCS12 file is |
| /// `notasecret`. For more information, see |
| /// https://tools.ietf.org/html/rfc7292. |
| /// - "TYPE_GOOGLE_CREDENTIALS_FILE" : Google Credentials File format. |
| core.String privateKeyType; |
| |
| /// The public key data. Only provided in `GetServiceAccountKey` responses. |
| core.String publicKeyData; |
| core.List<core.int> get publicKeyDataAsBytes => |
| convert.base64.decode(publicKeyData); |
| |
| set publicKeyDataAsBytes(core.List<core.int> _bytes) { |
| publicKeyData = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// The key can be used after this timestamp. |
| core.String validAfterTime; |
| |
| /// The key can be used before this timestamp. For system-managed key pairs, |
| /// this timestamp is the end time for the private key signing operation. The |
| /// public key could still be used for verification for a few hours after this |
| /// time. |
| core.String validBeforeTime; |
| |
| ServiceAccountKey(); |
| |
| ServiceAccountKey.fromJson(core.Map _json) { |
| if (_json.containsKey('keyAlgorithm')) { |
| keyAlgorithm = _json['keyAlgorithm'] as core.String; |
| } |
| if (_json.containsKey('keyOrigin')) { |
| keyOrigin = _json['keyOrigin'] as core.String; |
| } |
| if (_json.containsKey('keyType')) { |
| keyType = _json['keyType'] as core.String; |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('privateKeyData')) { |
| privateKeyData = _json['privateKeyData'] as core.String; |
| } |
| if (_json.containsKey('privateKeyType')) { |
| privateKeyType = _json['privateKeyType'] as core.String; |
| } |
| if (_json.containsKey('publicKeyData')) { |
| publicKeyData = _json['publicKeyData'] as core.String; |
| } |
| if (_json.containsKey('validAfterTime')) { |
| validAfterTime = _json['validAfterTime'] as core.String; |
| } |
| if (_json.containsKey('validBeforeTime')) { |
| validBeforeTime = _json['validBeforeTime'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (keyAlgorithm != null) { |
| _json['keyAlgorithm'] = keyAlgorithm; |
| } |
| if (keyOrigin != null) { |
| _json['keyOrigin'] = keyOrigin; |
| } |
| if (keyType != null) { |
| _json['keyType'] = keyType; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (privateKeyData != null) { |
| _json['privateKeyData'] = privateKeyData; |
| } |
| if (privateKeyType != null) { |
| _json['privateKeyType'] = privateKeyType; |
| } |
| if (publicKeyData != null) { |
| _json['publicKeyData'] = publicKeyData; |
| } |
| if (validAfterTime != null) { |
| _json['validAfterTime'] = validAfterTime; |
| } |
| if (validBeforeTime != null) { |
| _json['validBeforeTime'] = validBeforeTime; |
| } |
| return _json; |
| } |
| } |
| |
| /// Request message for `SetIamPolicy` method. |
| class SetIamPolicyRequest { |
| /// REQUIRED: The complete policy to be applied to the `resource`. The size of |
| /// the policy is limited to a few 10s of KB. An empty policy is a valid |
| /// policy but certain Cloud Platform services (such as Projects) might reject |
| /// them. |
| Policy policy; |
| |
| /// OPTIONAL: A FieldMask specifying which fields of the policy to modify. |
| /// Only the fields in the mask will be modified. If no mask is provided, the |
| /// following default mask is used: `paths: "bindings, etag"` |
| core.String updateMask; |
| |
| SetIamPolicyRequest(); |
| |
| SetIamPolicyRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('policy')) { |
| policy = Policy.fromJson(_json['policy']); |
| } |
| if (_json.containsKey('updateMask')) { |
| updateMask = _json['updateMask'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (policy != null) { |
| _json['policy'] = policy.toJson(); |
| } |
| if (updateMask != null) { |
| _json['updateMask'] = updateMask; |
| } |
| return _json; |
| } |
| } |
| |
| /// Deprecated. [Migrate to Service Account Credentials |
| /// API](https://cloud.google.com/iam/help/credentials/migrate-api). The service |
| /// account sign blob request. |
| class SignBlobRequest { |
| /// Required. Deprecated. [Migrate to Service Account Credentials |
| /// API](https://cloud.google.com/iam/help/credentials/migrate-api). The bytes |
| /// to sign. |
| core.String bytesToSign; |
| core.List<core.int> get bytesToSignAsBytes => |
| convert.base64.decode(bytesToSign); |
| |
| set bytesToSignAsBytes(core.List<core.int> _bytes) { |
| bytesToSign = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| SignBlobRequest(); |
| |
| SignBlobRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('bytesToSign')) { |
| bytesToSign = _json['bytesToSign'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (bytesToSign != null) { |
| _json['bytesToSign'] = bytesToSign; |
| } |
| return _json; |
| } |
| } |
| |
| /// Deprecated. [Migrate to Service Account Credentials |
| /// API](https://cloud.google.com/iam/help/credentials/migrate-api). The service |
| /// account sign blob response. |
| class SignBlobResponse { |
| /// Deprecated. [Migrate to Service Account Credentials |
| /// API](https://cloud.google.com/iam/help/credentials/migrate-api). The id of |
| /// the key used to sign the blob. |
| core.String keyId; |
| |
| /// Deprecated. [Migrate to Service Account Credentials |
| /// API](https://cloud.google.com/iam/help/credentials/migrate-api). The |
| /// signed blob. |
| core.String signature; |
| core.List<core.int> get signatureAsBytes => convert.base64.decode(signature); |
| |
| set signatureAsBytes(core.List<core.int> _bytes) { |
| signature = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| SignBlobResponse(); |
| |
| SignBlobResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('keyId')) { |
| keyId = _json['keyId'] as core.String; |
| } |
| if (_json.containsKey('signature')) { |
| signature = _json['signature'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (keyId != null) { |
| _json['keyId'] = keyId; |
| } |
| if (signature != null) { |
| _json['signature'] = signature; |
| } |
| return _json; |
| } |
| } |
| |
| /// Deprecated. [Migrate to Service Account Credentials |
| /// API](https://cloud.google.com/iam/help/credentials/migrate-api). The service |
| /// account sign JWT request. |
| class SignJwtRequest { |
| /// Required. Deprecated. [Migrate to Service Account Credentials |
| /// API](https://cloud.google.com/iam/help/credentials/migrate-api). The JWT |
| /// payload to sign. Must be a serialized JSON object that contains a JWT |
| /// Claims Set. For example: `{"sub": "user@example.com", "iat": 313435}` If |
| /// the JWT Claims Set contains an expiration time (`exp`) claim, it must be |
| /// an integer timestamp that is not in the past and no more than 1 hour in |
| /// the future. If the JWT Claims Set does not contain an expiration time |
| /// (`exp`) claim, this claim is added automatically, with a timestamp that is |
| /// 1 hour in the future. |
| core.String payload; |
| |
| SignJwtRequest(); |
| |
| SignJwtRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('payload')) { |
| payload = _json['payload'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (payload != null) { |
| _json['payload'] = payload; |
| } |
| return _json; |
| } |
| } |
| |
| /// Deprecated. [Migrate to Service Account Credentials |
| /// API](https://cloud.google.com/iam/help/credentials/migrate-api). The service |
| /// account sign JWT response. |
| class SignJwtResponse { |
| /// Deprecated. [Migrate to Service Account Credentials |
| /// API](https://cloud.google.com/iam/help/credentials/migrate-api). The id of |
| /// the key used to sign the JWT. |
| core.String keyId; |
| |
| /// Deprecated. [Migrate to Service Account Credentials |
| /// API](https://cloud.google.com/iam/help/credentials/migrate-api). The |
| /// signed JWT. |
| core.String signedJwt; |
| |
| SignJwtResponse(); |
| |
| SignJwtResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('keyId')) { |
| keyId = _json['keyId'] as core.String; |
| } |
| if (_json.containsKey('signedJwt')) { |
| signedJwt = _json['signedJwt'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (keyId != null) { |
| _json['keyId'] = keyId; |
| } |
| if (signedJwt != null) { |
| _json['signedJwt'] = signedJwt; |
| } |
| return _json; |
| } |
| } |
| |
| /// Request message for `TestIamPermissions` method. |
| class TestIamPermissionsRequest { |
| /// The set of permissions to check for the `resource`. Permissions with |
| /// wildcards (such as '*' or 'storage.*') are not allowed. For more |
| /// information see [IAM |
| /// Overview](https://cloud.google.com/iam/docs/overview#permissions). |
| core.List<core.String> permissions; |
| |
| TestIamPermissionsRequest(); |
| |
| TestIamPermissionsRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('permissions')) { |
| permissions = (_json['permissions'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (permissions != null) { |
| _json['permissions'] = permissions; |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for `TestIamPermissions` method. |
| class TestIamPermissionsResponse { |
| /// A subset of `TestPermissionsRequest.permissions` that the caller is |
| /// allowed. |
| core.List<core.String> permissions; |
| |
| TestIamPermissionsResponse(); |
| |
| TestIamPermissionsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('permissions')) { |
| permissions = (_json['permissions'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (permissions != null) { |
| _json['permissions'] = permissions; |
| } |
| return _json; |
| } |
| } |
| |
| /// The request to undelete an existing role. |
| class UndeleteRoleRequest { |
| /// Used to perform a consistent read-modify-write. |
| core.String etag; |
| core.List<core.int> get etagAsBytes => convert.base64.decode(etag); |
| |
| set etagAsBytes(core.List<core.int> _bytes) { |
| etag = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| UndeleteRoleRequest(); |
| |
| UndeleteRoleRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('etag')) { |
| etag = _json['etag'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (etag != null) { |
| _json['etag'] = etag; |
| } |
| return _json; |
| } |
| } |
| |
| /// The service account undelete request. |
| class UndeleteServiceAccountRequest { |
| UndeleteServiceAccountRequest(); |
| |
| UndeleteServiceAccountRequest.fromJson( |
| // ignore: avoid_unused_constructor_parameters |
| core.Map _json); |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| return _json; |
| } |
| } |
| |
| class UndeleteServiceAccountResponse { |
| /// Metadata for the restored service account. |
| ServiceAccount restoredAccount; |
| |
| UndeleteServiceAccountResponse(); |
| |
| UndeleteServiceAccountResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('restoredAccount')) { |
| restoredAccount = ServiceAccount.fromJson(_json['restoredAccount']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (restoredAccount != null) { |
| _json['restoredAccount'] = restoredAccount.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The service account key upload request. |
| class UploadServiceAccountKeyRequest { |
| /// A field that allows clients to upload their own public key. If set, use |
| /// this public key data to create a service account key for given service |
| /// account. Please note, the expected format for this field is X509_PEM. |
| core.String publicKeyData; |
| core.List<core.int> get publicKeyDataAsBytes => |
| convert.base64.decode(publicKeyData); |
| |
| set publicKeyDataAsBytes(core.List<core.int> _bytes) { |
| publicKeyData = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| UploadServiceAccountKeyRequest(); |
| |
| UploadServiceAccountKeyRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('publicKeyData')) { |
| publicKeyData = _json['publicKeyData'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (publicKeyData != null) { |
| _json['publicKeyData'] = publicKeyData; |
| } |
| return _json; |
| } |
| } |