Como criar e gerenciar pastas

As pastas são nodes no Cloud Platform Resource Hierarchy. Uma pasta pode conter projetos, outras pastas ou uma combinação de ambos. Os recursos da organização podem usar pastas para agrupar projetos no nó do recurso da organização em uma hierarquia. Por exemplo, o recurso da sua organização pode conter vários departamentos, cada um com seu próprio conjunto de recursos do Google Cloud. Com as pastas, você pode agrupar esses recursos por departamento ou agrupar recursos que compartilham políticas comuns do IAM. Cada pasta pode conter várias pastas ou recursos. No entanto, uma determinada pasta ou recurso pode ter somente um pai.

No diagrama abaixo, o recurso da organização, "Company", tem pastas que representam dois departamentos, "Departamento X" e "Departamento Y", e uma pasta "Infraestrutura compartilhada" para itens que podem ser comuns a ambos os departamentos. Em "Dept Y", eles se organizam em duas equipes e, dentro das pastas de equipe, eles organizam por produtos. A pasta para o "Product 1" contém três projetos, cada um com os recursos necessários para o projeto. Isso oferece uma grande flexibilidade na atribuição de políticas de IAM às políticas da Organização no nível de granularidade ideal.

Exemplo de hierarquia de pastas

Você pode usar políticas de IAM de nível de pasta para controlar o acesso aos recursos que a pasta contém. Por exemplo, se um usuário receber o papel Administrador da instância do Compute em uma pasta, esse usuário terá o papel Administrador da instância do Compute em todos os projetos na pasta.

Antes de começar

A funcionalidade de pasta está disponível apenas para clientes do Google Workspace e do Cloud Identity que tenham um recurso de organização. Para mais informações sobre como adquirir um recurso Organização, consulte Como criar e gerenciar organizações.

Se você estiver explorando a melhor maneira de usar as pastas, recomendamos que você:

  1. Consulte Controle de acesso para pastas que usam o IAM. O tópico descreve como você pode controlar quem tem acesso às pastas e aos recursos que elas contêm.
  2. Saiba como definir permissões de pasta. As pastas são compatíveis com vários papéis de IAM diferentes. Se você quiser configurar as permissões amplamente para que os usuários vejam a estrutura dos projetos, será necessário conceder os papéis de Visualizador da organização e Visualizador de pastas a todo o domínio no nível do recurso da organização. Conceda o papel Visualizador de pastas nas pastas que quiser que os usuários vejam. Dessa forma, a visibilidade é restrita a partes da hierarquia da pasta.
  3. Crie pastas. Ao planejar a organização dos recursos do Cloud, recomendamos que você comece com uma única pasta, como um sandbox. Assim, é possível testar qual hierarquia é mais adequada para o recurso da sua organização. Imagine que as pastas são como limites de isolamento entre os recursos e pontos de conexão para políticas de acesso e configuração. Para delegar esse privilégio, é possível criar pastas para recursos de diferentes departamentos e atribuir papéis de Administrador em pastas. As pastas também podem ser usadas para agrupar recursos que pertencem a aplicativos ou ambientes diferentes, como desenvolvimento, produção e teste. Use pastas aninhadas para modelar esses cenários diferentes.

Uma situação comum é criar pastas que, por sua vez, contêm outros projetos ou pastas, conforme mostrado na imagem acima. Essa estrutura é conhecida como hierarquia de pastas. Ao criar esse tipo de hierarquia, lembre-se do seguinte:

  • Você pode aninhar pastas em até 10 (dez) níveis de profundidade.
  • Uma pasta pai não pode conter mais do que 300 pastas. Isso se refere somente a pastas filho diretas. Essas pastas filho podem, por sua vez, conter outros projetos ou pastas.
  • Os nomes de exibição das pastas precisam ser exclusivos dentro do mesmo nível da hierarquia.

Como definir permissões para gerenciar pastas

Para acessar e gerenciar pastas, é preciso atribuir os papéis de IAM específicos da pasta a grupos específicos de usuários. Para saber mais sobre esses papéis, consulte Controle de acesso para pastas que usam o IAM. Também recomendamos que você leia nossas práticas recomendadas para ajudar a identificar a melhor configuração para suas permissões de pasta.

Inicialmente, somente o Administrador da organização pode atribuir o papel Administrador de pastas ao recurso da organização. As contas subsequentes que tiverem esse papel poderão concedê-lo a outras contas.

Para configurar permissões de pasta:

Console

  1. No Console do Google Cloud, abra a página Gerenciar recursos.

    Abrir a página "Gerenciar recursos"

  2. Clique na lista suspensa Organização, na parte superior esquerda, e selecione a organização na lista de recursos.

  3. Insira seu endereço de e-mail na caixa de texto Adicionar membros, à direita.

  4. Na caixa da lista suspensa Selecionar um papel, vá até a categoria Resource Manager e selecione o papel Administrador de pastas.

  5. Clique em Adicionar para atribuir o novo papel.

gcloud

As pastas podem ser criadas programaticamente usando a Google Cloud CLI. Para isso, execute o comando a seguir:

gcloud organizations add-iam-policy-binding [ORGANIZATION_ID] \
--member=user:[USER_ID] \
--role=roles/resourcemanager.folderAdmin

API

A solicitação JSON:

request_json= '{ policy: { version: "1", bindings: [ { role: "roles/folderAdmin",
members: [ "user:admin@myorganization.com", ] }, { role: "roles/folderCreator",
members: [   "user:admin@myorganization.com", ] } , { role: "roles/folderMover",
members: [ "user:admin@myorganization.com", ] } , ] } }'

A solicitação curl:

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/[ORGANIZATION_NAME]:setIamPolicy

Em que:

  • [ORGANIZATION_NAME] é o nome da organização cuja política de IAM está sendo definida. Por exemplo, organizations/123.

Como criar pastas

Para criar pastas, você precisa ter o papel Administrador de pasta ou Criador de pastas no nível pai. Por exemplo, para criar pastas no nível da organização, você precisa ter um desses papéis no nível da organização.

Como parte da criação de uma pasta, você precisa atribuir um nome a ela. Os nomes de pasta precisam atender aos seguintes requisitos:

  • O nome pode conter letras, dígitos, espaços, hifens e sublinhados.
  • O nome de exibição da pasta precisa começar e terminar com uma letra ou um dígito.
  • O nome precisa ter entre 3 e 30 caracteres.
  • O nome precisa ser distinto de todas as outras pastas que compartilhem o mesmo pai.

Para criar uma pasta:

Console

As pastas podem ser criadas na IU usando a seção "Gerenciar projetos e pastas".

  1. Acesse a página Gerenciar recursos no Console do Google Cloud:

    Abrir a página "Gerenciar recursos"

  2. Verifique se o nome de recurso da organização está selecionado na lista suspensa na parte superior da página.

  3. Clique em Criar pasta.

  4. Na caixa Nome da pasta, insira o nome da nova pasta.

  5. Em Destino, clique em Procurar e selecione o recurso ou a pasta da organização em que você quer criar a nova pasta.

    1. Clique em Criar.

gcloud

As pastas podem ser criadas programaticamente usando a Google Cloud CLI.

Para criar uma pasta no recurso da organização usando a ferramenta de linha de comando gcloud, execute o comando a seguir.

gcloud resource-manager folders create \
   --display-name=[DISPLAY_NAME] \
   --organization=[ORGANIZATION_ID]

Para criar uma pasta cujo pai é outra pasta:

gcloud resource-manager folders create \
   --display-name=[DISPLAY_NAME] \
   --folder=[FOLDER_ID]

Em que:

  • [DISPLAY_NAME] é o nome de exibição da pasta. Pastas com o mesmo pai não podem ter o mesmo nome de exibição. O nome de exibição precisa começar e terminar com uma letra ou um dígito, pode conter letras, dígitos, espaços, hifens e sublinhados e não pode ter mais de 30 caracteres;
  • [ORGANIZATION_ID] é o ID do recurso da organização pai, se o pai for um recurso da organização.
  • [FOLDER_ID] é o código da pasta pai, se o pai for uma pasta.

API

É possível criar pastas com uma solicitação de API.

A solicitação JSON:

request_json= '{
  display_name: "[DISPLAY_NAME]"
}'

A solicitação curl Criar pasta:

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/folders?parent=[ORGANIZATION_NAME]

Em que:

  • [DISPLAY_NAME] é o nome de exibição da pasta nova. Por exemplo, "Minha pasta maravilhosa";
  • [ORGANIZATION_NAME] é o nome do recurso da organização em que você está criando a pasta. Por exemplo, organizations/123.

A resposta Criar pasta:

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  }
}

A solicitação curl Receber operação:

curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v3/operations/fc.123456789

A resposta Receber operação:

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.Folder",
    "name": "folders/12345",
    "parent": "organizations/123",
    "displayName": "[DISPLAY_NAME]",
    "lifecycleState": "ACTIVE",
    "createTime": "2017-07-19T23:29:26.018Z",
    "updateTime": "2017-07-19T23:29:26.046Z"
  }
}

Como configurar o acesso às pastas

Para configurar o acesso às pastas, você precisa ter o papel Administrador de pastas do IAM ou Administrador de pasta no nível pai.

Console

  1. No Console do Google Cloud, abra a página Gerenciar recursos.

    Abrir a página "Gerenciar recursos"

  2. Clique na lista suspensa Organização na parte superior esquerda e selecione o recurso da organização.

  3. Marque a caixa de seleção ao lado do projeto em que você quer alterar as permissões.

    1. No Painel de informações ao lado direito, em Permissões, insira os endereços de e-mail dos membros que você quer adicionar.

    2. Na lista suspensa Selecionar papel, escolha o papel que você quer conceder a esses membros.

    3. Clique em Adicionar. Uma notificação será exibida para confirmar a adição ou atualização do novo papel dos membros.

gcloud

É possível configurar o acesso a pastas de maneira programática usando a Google Cloud CLI ou a API.

gcloud resource-manager folders \
  add-iam-policy-binding [FOLDER_ID] \
  --member=user:email1@example.com \
  --role=roles/resourcemanager.folderEditor
gcloud resource-manager folders \
  add-iam-policy-binding [FOLDER_ID] \
  --member=user:email1@example.com \
  --role=roles/resourcemanager.folderViewer

Como alternativa:

gcloud resource-manager folders \
  set-iam-policy [FOLDER_ID] [POLICY_FILE]

Em que:

  • [FOLDER_ID] é o código da nova pasta.
  • [POLICY_FILE] é o caminho para um arquivo de política para a pasta.

API

O método setIamPolicy define a política de controle de acesso em uma pasta, substituindo qualquer política atual. O campo resource precisa ser o nome do recurso da pasta, por exemplo, folders/1234.

 request_json= '{
   policy: {
     version: "1",
     bindings: [
       {
         role: "roles/resourcemanager.folderEditor",
         members: [
           "user:email1@example.com",
           "user:email2@example.com",
         ]
       }
     ]
   }
 }'

A solicitação curl:

   curl -X POST -H "Content-Type: application/json" \
   -H "Authorization: Bearer ${bearer_token}" \
   -d "$request_json" \
   https://cloudresourcemanager.googleapis.com/v3/[FOLDER_NAME]:setIamPolicy

Em que:

  • [FOLDER_NAME] é o nome da pasta com a política do IAM que está sendo definida. Por exemplo, folders/123.

Como criar um projeto em uma pasta

Para criar um projeto em uma pasta, é preciso ter o papel Criador de projetos (roles/resourcemanager.projectCreator) na pasta. Esse papel pode ser herdado de uma pasta pai.

Console

  1. No Console do Google Cloud, abra a página "Gerenciar recursos".

    Abrir o console do Google Cloud

  2. Acesse a página "Gerenciar recursos"
  3. Selecione o recurso Organização na lista suspensa Organização, na parte superior esquerda da página.
  4. Clique em Criar projeto.
  5. Digite o Nome do projeto.
  6. Na caixa Destino, clique em Procurar para selecionar a pasta na qual você quer criar o projeto.

  7. Clique em Criar.

gcloud

   gcloud projects create [PROJECT_ID]
      --folder [FOLDER_ID]

Em que:

  • [PROJECT_ID] é o código do projeto a ser criado;
  • [FOLDER_ID] é o código da pasta em que o projeto precisa ser criado.

API

A solicitação JSON:

   request_json= ‘{
      name: “[DISPLAY_NAME]”, projectId: “[PROJECT_ID]”, parent: {id: [PARENT_ID], type: [PARENT_TYPE] }
   }’

A solicitação curl:

   curl -X POST -H "Content-Type: application/json" \
   -H "Authorization: Bearer ${bearer_token}" \
   -d "$request_json" \
   https://cloudresourcemanager.googleapis.com/v3/projects

Em que:

  • [PROJECT_ID] é o código do projeto que está sendo criado, por exemplo, my-awesome-proj-123.
  • [DISPLAY_NAME] é o nome de exibição do projeto que está sendo criado.
  • [PARENT_ID] é o código do pai em que ele está sendo criado, por exemplo, 123.
  • [PARENT_TYPE] é o tipo de pai, como "pasta" ou "Organização".

Não inclua informações confidenciais no nome da sua pasta ou outros nomes de recursos. Qualquer referência à pasta ou aos recursos relacionados expõe o nome da pasta e do recurso.

Como mover um projeto para uma pasta

Considere cuidadosamente as implicações de política antes de mover um projeto para ou dentro de uma pasta. As políticas de gerenciamento de identidade e acesso definidas no nível do projeto serão movidas com o projeto, mas as políticas herdadas de um recurso pai não.

Quando você move um projeto, todas as políticas de gerenciamento de identidade e acesso ou políticas da organização anexadas diretamente serão movidas com ele. No entanto, um projeto na hierarquia de recursos também é afetado pelas políticas herdadas de recursos pai. Se um projeto herdar um papel do IAM que forneça aos usuários permissão para usar um determinado serviço, os usuários não terão acesso a esse serviço no destino, a menos que ele herde a permissão no destino também.

Por exemplo, considere que uma conta de serviço tem o papel de criador de objetos do Storage vinculado a um usuário na Pasta A. A conta de serviço tem permissões para fazer upload de dados para o Cloud Storage em qualquer projeto na Pasta A. Se você moveu um desses projetos para a Pasta B, que não tem as mesmas permissões herdadas, a conta de serviço desse projeto perderá a capacidade de fazer upload de dados, resultando em uma interrupção do serviço.

Essas mesmas considerações se aplicam se as políticas da Organização estiverem definidas nas pastas de origem e de destino. Assim como as políticas de IAM, as da Organização são herdadas. Portanto, você precisa garantir que as políticas da Organização sejam consistentes entre as pastas de origem e de destino.

Para saber mais sobre políticas da Organização, consulte Introdução ao serviço de Política de Organização.

Para mover um projeto, você precisa do papel do IAM de Movimentador de projetos (roles/resourcemanager.projectMover) nas pastas de origem e de destino. Se o recurso não estiver em uma pasta, você precisará desse papel no recurso da organização.

Esses papéis concedem as seguintes permissões exigidas:

  • resourcemanager.projects.update no projeto
  • Se o recurso estiver em uma pasta: resourcemanager.projects.move na pasta de origem e no destino
  • Se o recurso não estiver em uma pasta: resourcemanager.projects.move no recurso da organização

Também é possível receber essas permissões com papéis personalizados ou outros papéis predefinidos.

Console

Para mover um projeto, siga estas etapas:

  1. No Console do Google Cloud, acesse a página Gerenciar recursos.

    Acesse "Gerenciar recursos"

  2. Selecione a organização na lista suspensa Organização, na parte superior esquerda da página.

  3. Clique na linha do projeto para selecioná-lo na lista de recursos. Não clique no nome do projeto, porque isso leva você até a página do IAM do projeto.

  4. Clique no menu de opções (as reticências verticais) da linha e clique em Mover.

  5. Clique em Procurar para selecionar a pasta para que você quer mover o projeto.

  6. Clique em Mover.

gcloud

Para mover um projeto, execute o comando gcloud beta projects move:

gcloud beta projects move PROJECT_ID \
--DESTINATION_TYPE DESTINATION_ID

Em que:

  • PROJECT_ID é o ID ou o número do projeto que você quer mover.

  • DESTINATION_TYPE é organization ou folder.

  • DESTINATION_ID é o ID da pasta ou do recurso da organização para onde você quer mover o projeto. Só é possível especificar um destino.

API

Use o método v3 projects.move para mover um projeto.

Solicitação:

POST https://cloudresourcemanager.googleapis.com/v3/{name=PROJECT_NAME}:move
{
  "destinationParent": DESTINATION_PARENT
}

Em que:

  • PROJECT_NAME é o nome da visualização que você quer atualizar. Por exemplo, projects/415104041262

  • DESTINATION_PARENT é o novo recurso ou pasta pai da organização para onde você quer migrar o projeto. Por exemplo: organizations/12345678901

Se for bem-sucedida, a solicitação retornará uma Operação que pode ser usada para rastrear a movimentação do projeto.

Como mover uma pasta para outra

Para mover uma pasta para outra, é necessário ter a permissão resourcemanager.folders.move para as pastas de origem e de destino.

Console

O processo de transferência de uma pasta para outras pastas no console é semelhante ao de projetos.

  1. No Console do Google Cloud, abra a página "Gerenciar recursos".

    Abrir o console do Google Cloud

  2. Selecione o recurso Organização na lista suspensa Organização, na parte superior esquerda da página.
  3. Clique na linha da pasta para selecioná-la na lista de projetos e pastas.
  4. Clique no menu de opções (as reticências verticais) da linha e clique em Mover.
  5. Clique em Procurar para selecionar a pasta para que você quer mover a pasta.
  6. Clique em Mover.

gcloud

Para mover uma pasta no recurso Organização, execute o seguinte comando na Google Cloud CLI:

gcloud resource-manager folders move [FOLDER_ID] \
  --organization=[PARENT_ID]

Para mover uma pasta para outra pasta:

gcloud resource-manager folders move [FOLDER_ID] \
  --folder=[PARENT_ID]

Em que:

  • [FOLDER_ID] é o código da pasta a ser movida;
  • [PARENT_ID] é o ID do recurso Organização ou da pasta pai.

API

A solicitação JSON:

request_json= '{
   destinationParent: "folders/[DESTINATION_FOLDER_ID]"
}'

A solicitação curl Mover pasta:

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token} \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/folders/[DISPLAY_NAME]:move

Em que:

  • [DESTINATION_FOLDER_ID] é o código da pasta para onde você está movendo outra pasta. Por exemplo, 98765;
  • [DISPLAY_NAME] é o nome de exibição da pasta que está sendo movida. Por exemplo, "Minha pasta maravilhosa".

A resposta Mover pasta:

{
  "name": "operations/fm.1234567890",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "MOVE"
  }
}

A solicitação curl Receber operação:

curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v3/operations/fm.1234567890

A resposta Receber operação:

{
  "name": "operations/fm.1234567890",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "MOVE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.Folder",
    "name": "folders/12345",
    "parent": "folders/98765",
    "displayName": "[DISPLAY_NAME]",
    "lifecycleState": "ACTIVE",
    "createTime": "2017-07-19T23:29:26.018Z",
    "updateTime": "2017-07-20T00:54:44.295Z"
  }
}

Como visualizar ou listar pastas e projetos

Para visualizar ou listar pastas, você precisa ter os papéis de Leitor da organização e Leitor de pastas.

Para visualizar ou listar pastas e projetos:

Console

  1. No Console do Google Cloud, abra a página "Gerenciar recursos".

    Abrir a página "Gerenciar recursos"

  2. No seletor de projetos na parte superior da página, selecione o recurso da organização. As pastas devem ser criadas antes de aparecerem nesta lista.

  3. Selecione qualquer linha na árvore para realizar operações específicas de pasta ou de projeto.

  4. Digite o nome da pasta/código ou do projeto na pesquisa para filtrar a lista.

gcloud

Para visualizar uma pasta, use o comando describe.

   gcloud resource-manager folders describe [FOLDER_ID]

   name: folders/245321 \
   parent: organizations/2518 \
   display_name: Super Fantastic Folder \
   lifecycle_state: ACTIVE \
   create_time: <timestamp info …> \
   update_time: <timestamp info …> \

Em que:

  • [FOLDER_ID] é o código da pasta que você quer visualizar.

    Para listar as pastas em um recurso da organização, use o comando list.

    gcloud resource-manager folders list
    --organization [ORGANIZATION_ID]

    Em que:

  • [ORGANIZATION_ID] é o ID do recurso da organização que contém as pastas filhas que você quer listar.

    O comando gera uma tabela que exibe as pastas filhas do ID do recurso da organização especificado.

    O comando list também pode listar as pastas sob outra pasta, usando a sinalização --folder.

    gcloud resource-manager folders list
    --folder [FOLDER_ID]

    Em que:

  • [FOLDER_ID] é o código da pasta que contém as pastas filho que você quer listar.

    Para listar os projetos em um recurso ou pasta da organização, use o comando projects list e o argumento filter.

    gcloud projects list
    --filter=" parent.id: '[FOLDER_OR_ORGANIZATION_ID]' "

    Em que:

  • [FOLDER_OR_ORGANIZATION_ID] é o ID da pasta ou do recurso da organização que contém os projetos filhos que você quer listar.

API

A solicitação curl para receber pastas:

curl -X GET -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${bearer_token}" \
  https://cloudresourcemanager.googleapis.com/v3/[FOLDER_NAME]

Em que:

  • [FOLDER_NAME] é o nome da pasta. Por exemplo, folders/123.

A solicitação curl para listar pastas:

curl -X GET -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${bearer_token}" \
  https://cloudresourcemanager.googleapis.com/v3/folders?parent=[PARENT_NAME]

Em que:

  • [PARENT_NAME] é o nome do recurso pai em que você está criando a pasta, como organizations/123 ou folders/123.

Como usar o Google Cloud CLI

Os comandos para interagir com a API Folders com a ferramenta de linha de comando gcloud estão disponíveis no grupo de comandos gcloud resource-manager folders.

Criar

Para criar uma nova pasta, use gcloud resource-manager folders create com sinalizações que definem o nome da pasta e o ID do recurso ou da pasta da organização em que você quer que ela seja criada.

gcloud resource-manager folders create \
  --display-name="Super Fantastic Folder" \
  --organization=2518

Created Folder 245321.

Exibir

Para visualizar uma pasta, use gcloud resource-manager folders describe com o código da pasta que você quer visualizar.

gcloud resource-manager folders describe 245321
name: folders/245321
parent: organizations/2518
display_name: Super Fantastic Folder
lifecycle_state: ACTIVE
create_time: <timestamp info …>
update_time: <timestamp info …>

Listar

Para listar as pastas sob outra pasta, use gcloud resource-manager folders list, passando o código da pasta na sinalização --folder. Isso também pode listar as pastas de nível superior em um recurso da organização, usando a sinalização --organization.

gcloud resource-manager folders list --folder 245321
<table output showing the folders underneath the folder with the specified ID>

gcloud resource-manager folders list --organization 2518
<table output showing folders in this Organization but not in any folder>

Para incluir pastas para as quais a exclusão é solicitada na lista, adicione a sinalização --show-deleted

gcloud beta resource-manager folders list --folder 245321 --show-deleted
<table output showing all the folders including the delete requested ones underneath the folder with the specified ID>

É possível listar projetos usando o comando gcloud projects list, passando o ID da pasta pai ou da organização na sinalização --filter.

gcloud projects list --filter=" parent.id: '245321' "
<table output showing the projects underneath the resource with the specified ID>

Para mais informações sobre como as permissões e os filtros interagem com os comandos de lista, consulte Como listar todos os recursos em sua hierarquia.

Para pesquisar pastas que correspondem à consulta especificada, use gcloud alpha resource-manager folders search, transmitindo a condição na sinalização --query. O escopo da pesquisa é de todas as pastas para as quais o usuário tem permissão de visualização.

gcloud alpha resource-manager folders search --query="name:vij*"
<table output showing the folders with names starting from vij eg. vijeta, vijay-folder>

gcloud alpha resource-manager folders search --query="state:DELETE_REQUESTED"
<table output showing folders for which delete has been requested>

Todas as pastas em que o usuário tem permissão de visualização podem ser mostradas usando o comando gcloud folders search.

gcloud folders search
<table output showing all viewable folders>

Atualizar

As pastas podem ser atualizadas com o comando gcloud resource-manager folders update. Atualmente, apenas o campo display_name de uma pasta pode ser atualizado.

gcloud resource-manager folders update \
  --display-name="Mega Incredible Folder" 245321
name: folders/245321
parent: organizations/2518
display_name: Mega Incredible Folder
lifecycle_state: ACTIVE
create_time: <timestamp info …>
update_time: <recent timestamp info …>

Delete

É possível excluir pastas e cancelar a exclusão delas a partir da linha de comando. Um usuário precisa ter o papel Administrador de pastas ou Editor de pastas para fazer isso. Você só pode excluir pastas vazias.

gcloud resource-manager folders delete 245321
name: folders/245321
parent: organizations/2518
display_name: Mega Incredible Folder
lifecycle_state: DELETE_REQUESTED
create_time: <timestamp info …>
update_time: <recent timestamp info …>

gcloud resource-manager folders undelete 245321
name: folders/245321
parent: organizations/2518
display_name: Mega Incredible Folder
lifecycle_state: ACTIVE
create_time: <timestamp info …>
update_time: <recent timestamp info …>

Mover projeto

Os projetos podem ser criados em pastas e movidos para pastas usando os comandos existentes gcloud projects create e gcloud projects move. As pastas também podem ser movidas usando gcloud resource-manager folders move.

gcloud projects create --folder=245321 fancy-folder-project
project_id: fancy-folder-project
project_number: 905283
parent:
  type: "folder"
  id: 245321
other fields …

gcloud projects move --folder=245321 soon-to-be-fancy-project
project_id: soon-to-be-fancy-project
project_number: 428714
parent:
  type: "folder"
  id: 245321
other fields …

Operações de longa duração

Algumas operações, como a criação de pastas, podem demorar muito tempo. Para facilitar a realização simultânea de várias tarefas, alguns comandos de pasta permitem que você os execute de maneira assíncrona. Esses comandos aceitam uma sinalização --async para ativar o comportamento assíncrono. Assim, eles retornam uma operação de longa duração imediatamente, em vez de esperar que a operação seja concluída. É possível pesquisar essa operação com o comando gcloud beta resource-manager operations describe. Atualmente, apenas os comandos folders create e folders move permitem o uso assíncrono.

gcloud resource-manager folders create \
  --display-name="Awe-Inspiring Async Folder" \
  --organization=2518 \
  --async

name: operations/fc.8572
metadata:
  operation_type: CREATE
  display_name: Awe-Inspiring Async Folder
  destination_parent: organizations/2518
done: false

[wait for some time …]

gcloud beta resource-manager operations describe fc.8572
name: operations/fc.8572
metadata:
  operation_type: CREATE
  display_name: Awe-Inspiring Async Folder
  destination_parent: organizations/2518
done: true
response:
  name: folders/6428
  parent: organizations/2518
  display_name: Awe-Inspiring Async Folder
  lifecycle_state: ACTIVE
  create_time: <recent timestamp info …>
  update_time: <recent timestamp info …>