def Run(self, args): project = properties.VALUES.core.project.Get(required=True) result = self.iam_client.projects_serviceAccounts.Create( self.messages.IamProjectsServiceAccountsCreateRequest( name=iam_util.ProjectToProjectResourceName(project), createServiceAccountRequest=self.messages. CreateServiceAccountRequest( accountId=args.name, serviceAccount=self.messages.ServiceAccount( displayName=args.display_name)))) log.CreatedResource(args.name, kind='service account') return result
def Run(self, args): if args.limit is not None: if args.limit < 1: raise exceptions.ToolException('Limit size must be >=1') project = properties.VALUES.core.project.Get(required=True) for item in list_pager.YieldFromList( self.iam_client.projects_serviceAccounts, self.messages.IamProjectsServiceAccountsListRequest( name=iam_util.ProjectToProjectResourceName(project)), field='accounts', limit=args.limit, batch_size_attribute='pageSize'): yield item
def _CreateServiceAccount(account_name, display_name, description): """Creates a service account with the provided name and display name.""" project_ref = projects_util.ParseProject(properties.VALUES.core.project.Get()) client, messages = iam_api_util.GetClientAndMessages() result = client.projects_serviceAccounts.Create( messages.IamProjectsServiceAccountsCreateRequest( name=iam_util.ProjectToProjectResourceName(project_ref.Name()), createServiceAccountRequest=messages.CreateServiceAccountRequest( accountId=account_name, serviceAccount=messages.ServiceAccount( displayName=display_name, description=description)))) log.CreatedResource(account_name, kind='service account') return result
def ListServiceAccounts(self, project): """Lists all service accounts within a particular project. Args: project: The project string to search for the service account in. Returns: A list of service account message objects. """ messages = self._iam_client.MESSAGES_MODULE response = self._iam_client.projects_serviceAccounts.List( messages.IamProjectsServiceAccountsListRequest( name=iam_util.ProjectToProjectResourceName(project))) return response.accounts
def Run(self, args): if args.limit is not None: if args.limit < 1: raise exceptions.InvalidArgumentException('Limit size must be >=1') project = properties.VALUES.core.project.Get(required=True) client, messages = util.GetClientAndMessages() for item in list_pager.YieldFromList( client.projects_serviceAccounts, messages.IamProjectsServiceAccountsListRequest( name=iam_util.ProjectToProjectResourceName(project)), field='accounts', limit=args.limit, batch_size_attribute='pageSize'): item.disabled = bool(item.disabled) yield item
def CreateServiceAccount(self, project, account_id): """Creates a service account within the provided project. Args: project: The project string to create a service account within. account_id: The string id to create the service account with. Returns: A string email of the service account. """ messages = self._iam_client.MESSAGES_MODULE response = self._iam_client.projects_serviceAccounts.Create( messages.IamProjectsServiceAccountsCreateRequest( name=iam_util.ProjectToProjectResourceName(project), createServiceAccountRequest=messages. CreateServiceAccountRequest(accountId=account_id))) return response.email