{
  "openapi": "3.0.0",
  "servers": [
    {
      "url": "https://resource-controller.cloud.ibm.com",
      "description": "Production"
    }
  ],
  "info": {
    "description": "## Introduction\n\nQuickly assign users access to more than one resource at a time by creating and updating [resource groups](https://cloud.ibm.com/docs/account?topic=account-rgs) with the IBM Cloud® Resource Manager API. You can delete any resource group only if it doesn't contain any resources, and it isn't the default resource group. When a user creates an account, a default resource group is created in the account. All IBM Cloud resources must be provisioned within a resource group. If an account is suspended, the corresponding resource group and all resources within it are also suspended.\n\nIn a Lite account, a user can have only one resource group. For a Pay-As-You-Go or Subscription account, a user can create more than one resource group.\n\nTo create resource instances within resource groups, see the [IBM Cloud® Resource Controller API](https://cloud.ibm.com/apidocs/resource-controller/resource-controller). \n\nSDKs for Java, Node, Python, and Go are available to make it easier to programmatically access the API from your code. The client libraries that are provided by the SDKs implement best practices for using the API and reduce the amount of code that you need to write. The tab for each language includes code examples that demonstrate how to use the client libraries. For more information about using the SDKs, see the [IBM Cloud SDK Common project](https://github.com/IBM/ibm-cloud-sdk-common) on GitHub.\n\nInstalling the Java SDK\n\nMaven\n\n```xml\n<dependency>\n    <groupId>com.ibm.cloud</groupId>\n    <artifactId>resource-manager</artifactId>\n    <version>{version}</version>\n</dependency>\n```\n\nGradle\n\n```java\ncompile 'com.ibm.cloud:resource-manager:{version}'\n```\n\nView on GitHub\nhttps://github.com/IBM/platform-services-java-sdk\n\nInstalling the Go SDK\n\nGo modules (recommended): Add the following import in your code, and then run `go build` or `go mod tidy`\n\n```go\nimport (\n\t\"github.com/IBM/platform-services-go-sdk/resourcemanagerv2\"\n)\n```\nGo get\n```bash\ngo get -u github.com/IBM/platform-services-go-sdk/resourcemanagerv2\n```\n\nView on GitHub\nhttps://github.com/IBM/platform-services-go-sdk\n\nInstalling the Node SDK\n\n```bash\nnpm install @ibm-cloud/platform-services\n```\n\nView on GitHub\nhttps://github.com/IBM/platform-services-node-sdk\n\nInstalling the Python SDK\n\n```bash\npip install --upgrade ibm-platform-services\n```\n\nView on GitHub\nhttps://github.com/IBM/platform-services-python-sdk\n\n## Endpoint URLs\n\nThe Resource Manager API uses the following global endpoint URL for all regions. When you call the API, add the path for each method to form the complete API endpoint for your requests.\n\n```\nhttps://resource-controller.cloud.ibm.com\n```\n\nIf you enabled service endpoints in your account, you can send API requests over the IBM Cloud private network at the following base endpoint URLs. For more information, see [Enabling VRF and service endpoints](https://cloud.ibm.com/docs/account?topic=account-vrf-service-endpoint).\n\n* Private endpoint URL for VPC infrastructure: `https://private.resource-controller.cloud.ibm.com`\n* Private endpoint URLs for classic infrastructure:\n   * Dallas: `https://private.us-south.resource-controller.cloud.ibm.com`\n   * Washington DC: `https://private.us-east.resource-controller.cloud.ibm.com`\n\nExample API request\n\n```\ncurl -X {request_method} \"https://resource-controller.cloud.ibm.com/{method_endpoint}\"\n```\n\nReplace `{request_method}` and `{method_endpoint}` in this example with the values for your particular API call. \n\n## Authentication\n\nAuthorization to the Resource Manager API is enforced by using an IBM Cloud Identity and Access Management (IAM) access token. The token is used to determine the actions that a user or service ID has access to when they use the API.\n\nObtaining an IAM token for an authenticated user or service ID is described in the [IAM Identity Services API](https://cloud.ibm.com/apidocs/iam-identity-token-api) documentation. \n\nTo use the API, add a valid IAM token to the HTTP Authorization request header, for example, `-H 'Authorization: Bearer <TOKEN>'`.\n\nWhen you use the SDK, configure an IAM authenticator with the IAM API key. The authenticator automatically obtains the IAM access token for the API key and includes it with each request. You can construct an authenticator in either of two ways:\n- Programmatically by constructing an IAM authenticator instance and supplying your IAM API key \n- By defining the API key in external configuration properties and then using the SDK authenticator factory to construct an IAM authenticator that uses the configured IAM API key\n\nIn this example of using external configuration properties, an IAM authenticator instance is created with the configured API key, and then the service client is constructed with this authenticator instance and the configured service URL.\n\nFor more information, see the Authentication section of the [IBM Cloud SDK Common](https://github.com/IBM/ibm-cloud-sdk-common/blob/main/README.md) documentation.\n\nTo call each method, you'll need to be assigned a role that includes the required IAM actions. Each method lists the associated action. For more information about IAM actions and how they map to roles, see [Assigning access to account management services](https://cloud.ibm.com/docs/account?topic=account-account-services).\n\nTo retrieve your access token:\n\n```bash\ncurl -X POST \\\n  \"https://iam.test.cloud.ibm.com/identity/token\" \\\n  --header 'Content-Type: application/x-www-form-urlencoded' \\\n  --header 'Accept: application/json' \\\n  --data-urlencode 'grant_type=urn:ibm:params:oauth:grant-type:apikey' \\\n  --data-urlencode 'apikey=<API_KEY>'\n```\n\nReplace `<API_KEY>` with your IAM API key.\n\nSetting client options through external configuration\n\nExample environment variables, where `<SERVICE_URL>` is the endpoint URL and `<API_KEY>` is your IAM API key\n```sh\nexport RESOURCE_MANAGER_URL=<SERVICE_URL>\nexport RESOURCE_MANAGER_AUTHTYPE=iam\nexport RESOURCE_MANAGER_APIKEY=<API_KEY>\n```\n\nExample of constructing the service client\n```go\nimport {\n    \"github.com/IBM/platform-services-go-sdk/resourcemanagerv2\"\n}\n...\nserviceClientOptions := &resourcemanagerv2.ResourceManagerV2Options{}\nserviceClient, err := resourcemanagerv2.NewResourceManagerV2UsingExternalConfig(serviceClientOptions)\n```\n\nFor more authentication examples, check out the [IBM Cloud SDK Common project on GitHub](https://github.com/IBM/ibm-cloud-sdk-common/blob/master/README.md#authentication).\n\nSetting client options through external configuration\n\nExample environment variables, where `<SERVICE_URL>` is the endpoint URL and `<API_KEY>` is your IAM API key\n```sh\nexport RESOURCE_MANAGER_URL=<SERVICE_URL>\nexport RESOURCE_MANAGER_AUTHTYPE=iam\nexport RESOURCE_MANAGER_APIKEY=<API_KEY>\n```\n\nExample of constructing the service client\n```java\nimport com.ibm.cloud.platform_services.resource_manager.v2.ResourceManager;\n...\nResourceManager serviceClient = ResourceManager.newInstance();\n```\n\nFor more authentication examples, check out the [IBM Cloud SDK Common project on GitHub](https://github.com/IBM/ibm-cloud-sdk-common/blob/master/README.md#authentication).\n\nSetting client options through external configuration\n\nExample environment variables, where `<SERVICE_URL>` is the endpoint URL and `<API_KEY>` is your IAM API key\n```sh\nexport RESOURCE_MANAGER_URL=<SERVICE_URL>\nexport RESOURCE_MANAGER_AUTHTYPE=iam\nexport RESOURCE_MANAGER_APIKEY=<API_KEY>\n```\n\nExample of constructing the service client\n```javascript\nconst ResourceManagerV2 = require('@ibm-cloud/platform-services/resource-manager/v2');\n...\nconst serviceClient = ResourceManagerV2.newInstance({});\n```\nFor more authentication examples, check out the [IBM Cloud SDK Common project on GitHub](https://github.com/IBM/ibm-cloud-sdk-common/blob/master/README.md#authentication).\n\nSetting client options through external configuration\n\nExample environment variables, where `<SERVICE_URL>` is the endpoint URL and `<API_KEY>` is your IAM API key\n```sh\nexport RESOURCE_MANAGER_URL=<SERVICE_URL>\nexport RESOURCE_MANAGER_AUTHTYPE=iam\nexport RESOURCE_MANAGER_APIKEY=<API_KEY>\n```\n\nExample of constructing the service client\n```python\nfrom ibm_platform_services import ResourceManagerV2\n...\nservice_client = ResourceManagerV2.new_instance()\n```\n\nFor more authentication examples, check out the [IBM Cloud SDK Common project on GitHub](https://github.com/IBM/ibm-cloud-sdk-common/blob/master/README.md#authentication).\n\n## Auditing\n\nYou can monitor API activity within your account by using the IBM Cloud Logs service. Whenever an API method is called, an event is generated that you can then track and audit from within IBM Cloud Logs. The specific event type is listed for each individual method.\n\nFor more information about how to track Account and Billing activity, see [Activity tracking events for account management](https://cloud.ibm.com/docs/account?topic=account-at_events_am).\n\n## Error handling\n\nThis API uses standard HTTP response codes to indicate whether a method completed successfully. A `200` response indicates success. A `400` type response indicates a failure, and a `500` type response indicates an internal system error.\n\n| HTTP Error Code | Description | Recovery |\n|-----------------|-------------|----------|\n| `200` | Success | The request was successful. |\n| `201` | Success | The resource group was successfully created. |\n| `400` | Bad Request | The input parameters in the request body are either incomplete or in the wrong format. Be sure to include all required parameters in your request. |\n| `401` | Unauthorized | You are not authorized to make this request. Log in to IBM Cloud and try again. If this error persists, contact the account owner to check your permissions.\t|\n| `403` | Forbidden | The supplied authentication is not authorized to access '{namespace}'. |\n| `404` | Not Found | The requested resource cannot be found. |\n| `410` | Gone | The resource is valid but has been removed already in a previous call |\n| `500` | Internal Server Error | *offering_name* is currently unavailable. Your request cannot not be processed. Wait a few minutes and try again. |\n\n## Rate limiting\n\nRate limits for API requests are enforced on a per-caller basis. If the number of requests for a particular method and endpoint reaches the request limit within the specified time window, no further requests are accepted until the timer expires. After the timer expires, a new time window begins with the next accepted request.\n\nThe response to each HTTP request includes headers that you can use to determine whether you are close to the rate limit:\n\n   * `X-RateLimit-Reset`: The time the current timer expires (in UNIX epoch time)\n   * `X-RateLimit-Remaining`: The number of requests that remain in the current time window\n   * `X-RateLimit-Limit`: The total number of requests that are allowed within the time window\n\nAn HTTP status code of `429` indicates that the rate limit was exceeded.\n\nCurrently, the rate of allowed requests for all resource manager APIs is 500 requests per 10 seconds.\n\n## Related APIs\n\nSee the following related APIs for more actions for service and resource management.\n\n* [IBM Cloud Open Service Broker](https://cloud.ibm.com/apidocs/resource-controller/ibm-cloud-osb-api)\n* [IBM Cloud Resource Controller](https://cloud.ibm.com/apidocs/resource-controller/resource-controller)",
    "version": "2.0",
    "title": "Resource Manager",
    "x-alternate-name": "Resource Manager",
    "contact": {
      "name": "IBM"
    },
    "x-codegen-config": {
      "java": {
        "apiPackage": "com.ibm.cloud.platform_services"
      },
      "go": {
        "apiPackage": "github.com/IBM/platform-services-go-sdk",
        "improvedNameFormattingV2": true
      },
      "python": {
        "apiPackage": "ibm_platform_services"
      }
    },
    "x-sdk-supported-languages": [
      "curl",
      "python",
      "node",
      "java",
      "go"
    ],
    "x-github": "https://github.ibm.com/cloud-api-docs/resource-controller",
    "x-github-issues": "https://github.ibm.com/cloud-api-docs/resource-controller/issues/new",
    "x-last-updated": "2021-10-19"
  },
  "tags": [
    {
      "name": "Resource Group"
    },
    {
      "name": "Quota Definition"
    }
  ],
  "security": [
    {
      "IAM": []
    }
  ],
  "paths": {
    "/v2/resource_groups": {
      "get": {
        "operationId": "list_resource_groups",
        "tags": [
          "Resource Group"
        ],
        "summary": "Get a list of all resource groups",
        "description": "Call this method to retrieve information about all resource groups and associated quotas in an account. The `id` returned in the response can be used to [create a resource instance later](https://cloud.ibm.com/apidocs/resource-controller/resource-controller?code=java#create-resource-instance). The response can be filtered based on queryParams such as `account_id`, `name`, `default`, and more to narrow your search.Users need to be assigned IAM policies with the Viewer role or higher on the targeted resource groups.",
        "parameters": [
          {
            "name": "account_id",
            "in": "query",
            "description": "The ID of the account that contains the resource groups that you want to get.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date",
            "in": "query",
            "description": "The date in the format of YYYY-MM which returns resource groups created in the specified year-month.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "The name of the resource group.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "default",
            "in": "query",
            "description": "Boolean value to specify whether or not to list default resource groups.",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "include_deleted",
            "in": "query",
            "description": "Boolean value to specify whether or not to list deleted resource groups.",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "x-sdk-operations": {
          "request-examples": {
            "curl": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "lang": "curl",
                    "source": [
                      "curl -X GET \\\n  https://resource-controller.cloud.ibm.com/v2/resource_groups?account_id=987d4cfd77b04e9b9e1a6asdcc861234&date=2019-09&name=test \\\n  -H 'Authorization: Bearer <IAM_TOKEN>'"
                    ]
                  }
                ]
              }
            ],
            "go": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "listResourceGroupsOptions := resourceManagerService.NewListResourceGroupsOptions()\n",
                      "listResourceGroupsOptions.SetAccountID(exampleUserAccountID)\n",
                      "listResourceGroupsOptions.SetIncludeDeleted(true)\n",
                      "\n",
                      "resourceGroupList, response, err := resourceManagerService.ListResourceGroups(listResourceGroupsOptions)\n",
                      "if err != nil {\n",
                      "  panic(err)\n",
                      "}\n",
                      "b, _ := json.MarshalIndent(resourceGroupList, \"\", \"  \")\n",
                      "fmt.Println(string(b))"
                    ]
                  }
                ]
              }
            ],
            "java": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "ListResourceGroupsOptions listResourceGroupsOptions = new ListResourceGroupsOptions.Builder()\n",
                      "        .accountId(exampleUserAccountId)\n",
                      "        .includeDeleted(true)\n",
                      "        .build();\n",
                      "\n",
                      "Response<ResourceGroupList> response = resourceManagerService.listResourceGroups(listResourceGroupsOptions).execute();\n",
                      "ResourceGroupList resourceGroupList = response.getResult();\n",
                      "\n",
                      "System.out.println(resourceGroupList);"
                    ]
                  }
                ]
              }
            ],
            "node": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "const params = {\n",
                      "  accountId: exampleUserAccountId,\n",
                      "  includeDeleted: true,\n",
                      "}\n",
                      "\n",
                      "resourceManagerService.listResourceGroups(params)\n",
                      "  .then(res => {\n",
                      "    console.log(JSON.stringify(res.result, null, 2));\n",
                      "  })\n",
                      "  .catch(err => {\n",
                      "    console.warn(err)\n",
                      "  });"
                    ]
                  }
                ]
              }
            ],
            "python": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "resource_group_list = resource_manager_service.list_resource_groups(\n",
                      "  account_id=example_user_account_id,\n",
                      "  include_deleted=True,\n",
                      ").get_result()\n",
                      "\n",
                      "print(json.dumps(resource_group_list, indent=2))"
                    ]
                  }
                ]
              }
            ]
          }
        },
        "x-ibm-permissions": {
          "description": null,
          "actions": [
            {
              "name": "resource-controller.group.retrieve"
            }
          ]
        },
        "responses": {
          "200": {
            "description": "The resource groups was successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceGroupList"
                },
                "example": {
                  "resources": [
                    {
                      "id": "fee82deba12e4c0fb69c3b09d1f12345",
                      "crn": "crn:v1:bluemix:public:resource-controller::a/987d4cfd77b04e9b9e1a6asdcc861234::resource-group:fee82deba12e4c0fb69c3b09d1f12345",
                      "account_id": "987d4cfd77b04e9b9e1a6asdcc861234",
                      "name": "test",
                      "state": "ACTIVE",
                      "default": false,
                      "quota_id": "a3d7b8d01e261c24677937c29ab33f3c",
                      "quota_url": "/v2/quota_definitions/a3d7b8d01e261c24677937c29ab33f3c",
                      "payment_methods_url": "/v2/resource_groups/fee82deba12e4c0fb69c3b09d1f12345/payment_methods",
                      "resource_linkages": [],
                      "teams_url": "/v2/resource_groups/fee82deba12e4c0fb69c3b09d1f12345/teams",
                      "created_at": "2019-03-04T17:30:33.826Z",
                      "updated_at": "2019-03-04T17:30:33.826Z"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidPayload"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      },
      "post": {
        "operationId": "create_resource_group",
        "tags": [
          "Resource Group"
        ],
        "summary": "Create a resource group",
        "description": "Create a resource group in an account to organize your account resources in customizable groupings so that you can quickly assign users access to more than one resource at a time. To learn what makes a good resource group strategy, see [Best practices for organizing resources](https://cloud.ibm.com/docs/account?topic=account-account_setup). A default resource group is created when an account is created. If you have a Lite account or 30-day trial, you cannot create extra resource groups, but you can rename your default resource group. If you have a Pay-As-You-Go or Subscription account, you can create multiple resource groups. You must be assigned an IAM policy with the Administrator role on All Account Management services to create extra resource groups.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReqBodyResourceGroupPost"
              }
            }
          }
        },
        "x-sdk-operations": {
          "request-examples": {
            "curl": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "lang": "curl",
                    "source": [
                      "curl -X POST \\\n  https://resource-controller.cloud.ibm.com/v2/resource_groups \\\n  -H 'Authorization: Bearer <IAM_TOKEN>'\n  -H 'Content-Type: application/json' \\\n    -d '{\n      \"account_id\": \"987d4cfd77b04e9b9e1a6asdcc861234\",\n      \"name\": \"test\"\n    }'"
                    ]
                  }
                ]
              }
            ],
            "go": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "createResourceGroupOptions := resourceManagerService.NewCreateResourceGroupOptions()\n",
                      "createResourceGroupOptions.SetAccountID(exampleUserAccountID)\n",
                      "createResourceGroupOptions.SetName(\"ExampleGroup\")\n",
                      "\n",
                      "resCreateResourceGroup, response, err := resourceManagerService.CreateResourceGroup(createResourceGroupOptions)\n",
                      "if err != nil {\n",
                      "  panic(err)\n",
                      "}\n",
                      "b, _ := json.MarshalIndent(resCreateResourceGroup, \"\", \"  \")\n",
                      "fmt.Println(string(b))"
                    ]
                  }
                ]
              }
            ],
            "java": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "CreateResourceGroupOptions createResourceGroupOptions = new CreateResourceGroupOptions.Builder()\n",
                      "        .accountId(exampleUserAccountId)\n",
                      "        .name(\"ExampleGroup\")\n",
                      "        .build();\n",
                      "\n",
                      "Response<ResCreateResourceGroup> response = resourceManagerService.createResourceGroup(createResourceGroupOptions).execute();\n",
                      "ResCreateResourceGroup resCreateResourceGroup = response.getResult();\n",
                      "\n",
                      "System.out.println(resCreateResourceGroup);"
                    ]
                  }
                ]
              }
            ],
            "node": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "const params = {\n",
                      "  accountId: exampleUserAccountId,\n",
                      "  name: \"ExampleGroup\"\n",
                      "};\n",
                      "\n",
                      "resourceManagerService.createResourceGroup(params)\n",
                      "  .then(res => {\n",
                      "    resourceGroupId = res.result.id;\n",
                      "    console.log(JSON.stringify(res.result, null, 2));\n",
                      "  })\n",
                      "  .catch(err => {\n",
                      "    console.warn(err)\n",
                      "  });"
                    ]
                  }
                ]
              }
            ],
            "python": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "res_create_resource_group = resource_manager_service.create_resource_group(\n",
                      "  account_id=example_user_account_id,\n",
                      "  name='ExampleGroup',\n",
                      ").get_result()\n",
                      "\n",
                      "print(json.dumps(res_create_resource_group, indent=2))"
                    ]
                  }
                ]
              }
            ]
          }
        },
        "x-ibm-permissions": {
          "description": null,
          "actions": [
            {
              "name": "resource-controller.group.create"
            }
          ]
        },
        "responses": {
          "201": {
            "description": "Resource group has been created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResCreateResourceGroup"
                },
                "example": {
                  "id": "fee82deba12e4c0fb69c3b09d1f12345",
                  "crn": "crn:v1:bluemix:public:resource-controller::a/987d4cfd77b04e9b9e1a6asdcc861234::resource-group:fee82deba12e4c0fb69c3b09d1f12345"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidPayload"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/v2/resource_groups/{id}": {
      "parameters": [
        {
          "name": "id",
          "description": "The short or long ID of the alias.",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "operationId": "get_resource_group",
        "tags": [
          "Resource Group"
        ],
        "summary": "Get a resource group",
        "description": "Retrieve a resource group by alias ID. Call this method to get details about a particular resource group, like the name of the resource group, associated quotas, whether the state is active, the resource group ID and the CRN. The `id` returned in the response can be used to [create a resource instance later](https://cloud.ibm.com/apidocs/resource-controller/resource-controller?code=java#create-resource-instance). Users need to be assigned an IAM policy with the Viewer role or higher on the targeted resource group.",
        "x-sdk-operations": {
          "request-examples": {
            "curl": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "lang": "curl",
                    "source": [
                      "curl -X GET \\\n  https://resource-controller.cloud.ibm.com/v2/resource_groups/09f8c1c0742c493f80baaf7835212345 \\\n  -H 'Authorization: Bearer <IAM_TOKEN>'"
                    ]
                  }
                ]
              }
            ],
            "go": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "getResourceGroupOptions := resourceManagerService.NewGetResourceGroupOptions(\n",
                      "  resourceGroupID,\n",
                      ")\n",
                      "\n",
                      "resourceGroup, response, err := resourceManagerService.GetResourceGroup(getResourceGroupOptions)\n",
                      "if err != nil {\n",
                      "  panic(err)\n",
                      "}\n",
                      "b, _ := json.MarshalIndent(resourceGroup, \"\", \"  \")\n",
                      "fmt.Println(string(b))"
                    ]
                  }
                ]
              }
            ],
            "java": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "GetResourceGroupOptions getResourceGroupOptions = new GetResourceGroupOptions.Builder()\n",
                      "  .id(resourceGroupId)\n",
                      "  .build();\n",
                      "\n",
                      "Response<ResourceGroup> response = resourceManagerService.getResourceGroup(getResourceGroupOptions).execute();\n",
                      "ResourceGroup resourceGroup = response.getResult();\n",
                      "\n",
                      "System.out.println(resourceGroup);"
                    ]
                  }
                ]
              }
            ],
            "node": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "const params = {\n",
                      "  id: resourceGroupId,\n",
                      "};\n",
                      "\n",
                      "resourceManagerService.getResourceGroup(params)\n",
                      "  .then(res => {\n",
                      "    console.log(JSON.stringify(res.result, null, 2));\n",
                      "  })\n",
                      "  .catch(err => {\n",
                      "    console.warn(err)\n",
                      "  });"
                    ]
                  }
                ]
              }
            ],
            "python": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "resource_group = resource_manager_service.get_resource_group(\n",
                      "  id=resource_group_id,\n",
                      ").get_result()\n",
                      "\n",
                      "print(json.dumps(resource_group, indent=2))"
                    ]
                  }
                ]
              }
            ]
          }
        },
        "x-ibm-permissions": {
          "description": null,
          "actions": [
            {
              "name": "resource-controller.group.retrieve"
            }
          ]
        },
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceGroup"
                },
                "example": {
                  "id": "fee82deba12e4c0fb69c3b09d1f12345",
                  "crn": "crn:v1:bluemix:public:resource-controller::a/987d4cfd77b04e9b9e1a6asdcc861234::resource-group:fee82deba12e4c0fb69c3b09d1f12345",
                  "account_id": "987d4cfd77b04e9b9e1a6asdcc861234",
                  "name": "test",
                  "state": "ACTIVE",
                  "default": false,
                  "quota_id": "a3d7b8d01e261c24677937c29ab33f3c",
                  "quota_url": "/v2/quota_definitions/a3d7b8d01e261c24677937c29ab33f3c",
                  "payment_methods_url": "/v2/resource_groups/fee82deba12e4c0fb69c3b09d1f12345/payment_methods",
                  "resource_linkages": [],
                  "teams_url": "/v2/resource_groups/fee82deba12e4c0fb69c3b09d1f12345/teams",
                  "created_at": "2019-03-04T17:30:33.826Z",
                  "updated_at": "2019-03-04T17:30:33.826Z"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      },
      "patch": {
        "operationId": "update_resource_group",
        "tags": [
          "Resource Group"
        ],
        "summary": "Update a resource group",
        "description": "Update a resource group by the alias ID. Call this method to update information about an existing resource group. You can rename a resource group and activate or suspend a particular resource group. To update a resource group, users need to be assigned with IAM policies with the Editor role or higher.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReqBodyResourceGroupPatch"
              }
            }
          }
        },
        "x-sdk-operations": {
          "request-examples": {
            "curl": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "lang": "curl",
                    "source": [
                      "curl -X PATCH \\\n  https://resource-controller.cloud.ibm.com/v2/resource_groups/09f8c1c0742c493f80baaf7835212345 \\\n  -H 'Authorization: Bearer <IAM_TOKEN>'\n  -H 'Content-Type: application/json' \\\n    -d '{\n      \"name\": \"test1\"\n    }'"
                    ]
                  }
                ]
              }
            ],
            "go": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "updateResourceGroupOptions := resourceManagerService.NewUpdateResourceGroupOptions(\n",
                      "  resourceGroupID,\n",
                      ")\n",
                      "updateResourceGroupOptions.SetName(\"RenamedExampleGroup\")\n",
                      "updateResourceGroupOptions.SetState(\"ACTIVE\")\n",
                      "\n",
                      "resourceGroup, response, err := resourceManagerService.UpdateResourceGroup(updateResourceGroupOptions)\n",
                      "if err != nil {\n",
                      "  panic(err)\n",
                      "}\n",
                      "b, _ := json.MarshalIndent(resourceGroup, \"\", \"  \")\n",
                      "fmt.Println(string(b))"
                    ]
                  }
                ]
              }
            ],
            "java": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "UpdateResourceGroupOptions updateResourceGroupOptions = new UpdateResourceGroupOptions.Builder()\n",
                      "  .id(resourceGroupId)\n",
                      "  .name(\"RenamedExampleGroup\")\n",
                      "  .state(\"ACTIVE\")\n",
                      "  .build();\n",
                      "\n",
                      "Response<ResourceGroup> response = resourceManagerService.updateResourceGroup(updateResourceGroupOptions).execute();\n",
                      "ResourceGroup resourceGroup = response.getResult();\n",
                      "\n",
                      "System.out.println(resourceGroup);"
                    ]
                  }
                ]
              }
            ],
            "node": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "const params = {\n",
                      "  id: resourceGroupId,\n",
                      "  state: 'ACTIVE',\n",
                      "  name: 'RenamedExampleGroup'\n",
                      "};\n",
                      "\n",
                      "resourceManagerService.updateResourceGroup(params)\n",
                      "  .then(res => {\n",
                      "    console.log(JSON.stringify(res.result, null, 2));\n",
                      "  })\n",
                      "  .catch(err => {\n",
                      "    console.warn(err)\n",
                      "  });"
                    ]
                  }
                ]
              }
            ],
            "python": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "resource_group = resource_manager_service.update_resource_group(\n",
                      "  id=resource_group_id,\n",
                      "  name='RenamedExampleGroup',\n",
                      "  state='ACTIVE',\n",
                      ").get_result()\n",
                      "\n",
                      "print(json.dumps(resource_group, indent=2))"
                    ]
                  }
                ]
              }
            ]
          }
        },
        "x-ibm-permissions": {
          "description": null,
          "actions": [
            {
              "name": "resource-controller.group.update"
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Successfully updated resource group.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceGroup"
                },
                "example": {
                  "id": "fee82deba12e4c0fb69c3b09d1f12345",
                  "crn": "crn:v1:bluemix:public:resource-controller::a/987d4cfd77b04e9b9e1a6asdcc861234::resource-group:fee82deba12e4c0fb69c3b09d1f12345",
                  "account_id": "987d4cfd77b04e9b9e1a6asdcc861234",
                  "name": "test1",
                  "state": "ACTIVE",
                  "default": false,
                  "quota_id": "a3d7b8d01e261c24677937c29ab33f3c",
                  "quota_url": "/v2/quota_definitions/a3d7b8d01e261c24677937c29ab33f3c",
                  "payment_methods_url": "/v2/resource_groups/fee82deba12e4c0fb69c3b09d1f12345/payment_methods",
                  "resource_linkages": [],
                  "teams_url": "/v2/resource_groups/fee82deba12e4c0fb69c3b09d1f12345/teams",
                  "created_at": "2019-03-04T17:30:33.826Z",
                  "updated_at": "2019-03-04T17:30:33.826Z"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidPayload"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      },
      "delete": {
        "operationId": "delete_resource_group",
        "tags": [
          "Resource Group"
        ],
        "summary": "Delete a resource group",
        "description": "Delete a resource group by the alias ID. You can delete a resource group only if the targeted resource group does not contain any resources or if it is not a default resource group. When a user creates an account, a default resource group is created in the account. If you want to delete a resource group that contains resources, first [delete the resource instances](https://cloud.ibm.com/apidocs/resource-controller/resource-controller?code=java#delete-resource-instance). Then, delete the resource group when all resource instances in the group are deleted. Users need to be assigned an IAM policy with the Editor role or higher on the targeted resource group.",
        "x-sdk-operations": {
          "request-examples": {
            "curl": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "lang": "curl",
                    "source": [
                      "curl -X DELETE \\\n  https://resource-controller.cloud.ibm.com/v2/resource_groups/09f8c1c0742c493f80baaf7835212345 \\\n  -H 'Authorization: Bearer <IAM_TOKEN>'\n  -H 'Content-Type: application/json'"
                    ]
                  }
                ]
              }
            ],
            "go": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "deleteResourceGroupOptions := resourceManagerService.NewDeleteResourceGroupOptions(\n",
                      "  resourceGroupID,\n",
                      ")\n",
                      "\n",
                      "response, err := deleteResourceManagerService.DeleteResourceGroup(deleteResourceGroupOptions)\n",
                      "if err != nil {\n",
                      "  panic(err)\n",
                      "}"
                    ]
                  }
                ]
              }
            ],
            "java": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "DeleteResourceGroupOptions deleteResourceGroupOptions = new DeleteResourceGroupOptions.Builder()\n",
                      "        .id(resourceGroupId)\n",
                      "        .build();\n",
                      "\n",
                      "deleteResourceManagerService.deleteResourceGroup(deleteResourceGroupOptions).execute();"
                    ]
                  }
                ]
              }
            ],
            "node": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "const params = {\n",
                      "  id: resourceGroupId,\n",
                      "};\n",
                      "\n",
                      "deleteResourceManagerService.deleteResourceGroup(params)\n",
                      "  .then(res => {\n",
                      "    console.log(JSON.stringify(res.result, null, 2));\n",
                      "  })\n",
                      "  .catch(err => {\n",
                      "    console.warn(err)\n",
                      "  });"
                    ]
                  }
                ]
              }
            ],
            "python": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "response = delete_resource_manager_service.delete_resource_group(\n",
                      "  id=resource_group_id,\n",
                      ").get_result()\n",
                      "\n",
                      "print(json.dumps(response, indent=2))"
                    ]
                  }
                ]
              }
            ]
          }
        },
        "x-ibm-permissions": {
          "description": null,
          "actions": [
            {
              "name": "resource-controller.group.delete"
            }
          ]
        },
        "responses": {
          "204": {
            "description": "The resource group is successfully deleted."
          },
          "400": {
            "$ref": "#/components/responses/InvalidPayload"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/v2/quota_definitions": {
      "get": {
        "operationId": "list_quota_definitions",
        "tags": [
          "Quota Definition"
        ],
        "summary": "List quota definitions",
        "description": "Get a list of all quota definitions. Quotas for a resource group limit the number of apps, instances, and memory allowed for that specific resource group. Each resource group that you have on your account has a specific set of quotas. Standard quotas are for resource groups that are created by users with a Lite account, and Pay-As-You-Go quotas are for resource groups that are created with a Pay-As-You-Go account. This method provides list of all available quota definitions. No specific IAM policy needed.",
        "x-sdk-operations": {
          "request-examples": {
            "curl": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "lang": "curl",
                    "source": [
                      "curl -X GET \\\n  https://resource-controller.cloud.ibm.com/v2/quota_definitions \\\n  -H 'Authorization: Bearer <IAM_TOKEN>'"
                    ]
                  }
                ]
              }
            ],
            "go": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "listQuotaDefinitionsOptions := resourceManagerService.NewListQuotaDefinitionsOptions()\n",
                      "\n",
                      "quotaDefinitionList, response, err := resourceManagerService.ListQuotaDefinitions(listQuotaDefinitionsOptions)\n",
                      "if err != nil {\n",
                      "  panic(err)\n",
                      "}\n",
                      "b, _ := json.MarshalIndent(quotaDefinitionList, \"\", \"  \")\n",
                      "fmt.Println(string(b))"
                    ]
                  }
                ]
              }
            ],
            "java": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "ListQuotaDefinitionsOptions listQuotaDefinitionsOptions = new ListQuotaDefinitionsOptions();\n",
                      "\n",
                      "Response<QuotaDefinitionList> response = resourceManagerService.listQuotaDefinitions().execute();\n",
                      "QuotaDefinitionList quotaDefinitionList = response.getResult();\n",
                      "\n",
                      "System.out.println(quotaDefinitionList);"
                    ]
                  }
                ]
              }
            ],
            "node": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "resourceManagerService.listQuotaDefinitions({})\n",
                      "  .then(res => {\n",
                      "    console.log(JSON.stringify(res.result, null, 2));\n",
                      "  })\n",
                      "  .catch(err => {\n",
                      "    console.warn(err)\n",
                      "  });"
                    ]
                  }
                ]
              }
            ],
            "python": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "quota_definition_list = resource_manager_service.list_quota_definitions().get_result()\n",
                      "\n",
                      "print(json.dumps(quota_definition_list, indent=2))"
                    ]
                  }
                ]
              }
            ]
          }
        },
        "x-ibm-permissions": {
          "description": null,
          "actions": [
            {
              "name": "resource-controller.quota.retrieve"
            }
          ]
        },
        "responses": {
          "200": {
            "description": "The quota definitions were successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuotaDefinitionList"
                },
                "example": {
                  "resources": [
                    {
                      "_id": "7ce89f4a-4381-4600-b814-3cd9a412345",
                      "_rev": "14-e8384c02aac04afcc08ce7991234556",
                      "name": "Trial Quota",
                      "type": "SDQ",
                      "number_of_service_instances": 1000,
                      "number_of_apps": 4,
                      "instances_per_app": 4,
                      "instance_memory": "1G",
                      "total_app_memory": "1G",
                      "vsi_limit": 1,
                      "resource_quotas": [
                        {
                          "_id": "65012f5b6fa84ecaaac5eab4abc12345",
                          "resource_id": "rcf0c17db8-35ad-11e7-a919-92ebc1234567",
                          "crn": "crn:v1:bluemix:public:resource-catalog::global:::rcf0c17db8-35ad-11e7-a919-92ebc1234567",
                          "limit": 1
                        }
                      ],
                      "created_at": "2017-05-16T17:12:52.925Z",
                      "updated_at": "2019-01-09T17:12:52.925Z"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidPayload"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/v2/quota_definitions/{id}": {
      "parameters": [
        {
          "name": "id",
          "description": "The id of the quota.",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "operationId": "get_quota_definition",
        "tags": [
          "Quota Definition"
        ],
        "summary": "Get a quota definition",
        "description": "Call this method to retrieve information about a particular quota by passing the quota ID. The response can be used to identify the quota type, Standard or Paid. Information about available resources, such as number of apps, number of service instances, and memory, are returned in the response. Quotas for a resource group limit the number of apps, instances, and memory allowed for that specific resource group. Each resource group that you have on your account has a specific set of quotas. Standard quotas are for resource groups that are created by users with a Lite account, and Pay-As-You-Go quotas are for resource groups that are created with a Pay-As-You-Go account. No specific IAM policy needed.",
        "x-sdk-operations": {
          "request-examples": {
            "curl": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "lang": "curl",
                    "source": [
                      "curl -X GET \\\n  https://resource-controller.cloud.ibm.com/v2/quota_definitions/7ce89f4a-4381-4600-b814-3cd9a4f12345 \\\n  -H 'Authorization: Bearer <IAM_TOKEN>'"
                    ]
                  }
                ]
              }
            ],
            "go": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "getQuotaDefinitionOptions := resourceManagerService.NewGetQuotaDefinitionOptions(\n",
                      "  exampleQuotaID,\n",
                      ")\n",
                      "\n",
                      "quotaDefinition, response, err := resourceManagerService.GetQuotaDefinition(getQuotaDefinitionOptions)\n",
                      "if err != nil {\n",
                      "  panic(err)\n",
                      "}\n",
                      "b, _ := json.MarshalIndent(quotaDefinition, \"\", \"  \")\n",
                      "fmt.Println(string(b))"
                    ]
                  }
                ]
              }
            ],
            "java": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "GetQuotaDefinitionOptions getQuotaDefinitionOptions = new GetQuotaDefinitionOptions.Builder()\n",
                      "  .id(exampleQuotaId)\n",
                      "  .build();\n",
                      "\n",
                      "Response<QuotaDefinition> response = resourceManagerService.getQuotaDefinition(getQuotaDefinitionOptions).execute();\n",
                      "QuotaDefinition quotaDefinition = response.getResult();\n",
                      "\n",
                      "System.out.println(quotaDefinition);"
                    ]
                  }
                ]
              }
            ],
            "node": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "const params = {\n",
                      "  id: exampleQuotaId,\n",
                      "};\n",
                      "\n",
                      "resourceManagerService.getQuotaDefinition(params)\n",
                      "  .then(res => {\n",
                      "    console.log(JSON.stringify(res.result, null, 2));\n",
                      "  })\n",
                      "  .catch(err => {\n",
                      "    console.warn(err)\n",
                      "  });"
                    ]
                  }
                ]
              }
            ],
            "python": [
              {
                "name": "Example request",
                "example": [
                  {
                    "type": "code",
                    "source": [
                      "quota_definition = resource_manager_service.get_quota_definition(\n",
                      "  id=example_quota_id,\n",
                      ").get_result()\n",
                      "\n",
                      "print(json.dumps(quota_definition, indent=2))"
                    ]
                  }
                ]
              }
            ]
          }
        },
        "x-ibm-permissions": {
          "description": null,
          "actions": [
            {
              "name": "resource-controller.quota.retrieve"
            }
          ]
        },
        "responses": {
          "200": {
            "description": "The quota is successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuotaDefinition"
                },
                "example": {
                  "_id": "7ce89f4a-4381-4600-b814-3cd9a412345",
                  "_rev": "14-e8384c02aac04afcc08ce7991234556",
                  "name": "Trial Quota",
                  "type": "SDQ",
                  "number_of_service_instances": 1000,
                  "number_of_apps": 4,
                  "instances_per_app": 4,
                  "instance_memory": "1G",
                  "total_app_memory": "1G",
                  "vsi_limit": 1,
                  "resource_quotas": [
                    {
                      "_id": "65012f5b6fa84ecaaac5eab4abc12345",
                      "resource_id": "rcf0c17db8-35ad-11e7-a919-92ebc1234567",
                      "crn": "crn:v1:bluemix:public:resource-catalog::global:::rcf0c17db8-35ad-11e7-a919-92ebc1234567",
                      "limit": 1
                    }
                  ],
                  "created_at": "2017-05-16T17:12:52.925Z",
                  "updated_at": "2019-01-09T17:12:52.925Z"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidPayload"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    }
  },
  "components": {
    "responses": {
      "InvalidPayload": {
        "description": "The request could have invalid payload.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorCollection"
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Your access token is invalid or authentication of your token failed.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorCollection"
            }
          }
        }
      },
      "Forbidden": {
        "description": "Your access token is valid but does not have the necessary permissions to access this resource.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorCollection"
            }
          }
        }
      },
      "NotFound": {
        "description": "The resource could not be found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorCollection"
            }
          }
        }
      },
      "TooManyRequests": {
        "description": "Too many requests. Please wait a few minutes and try again.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorCollection"
            }
          }
        }
      },
      "InternalServerError": {
        "description": "Your request could not be processed. Please try again later. If the problem persists, note the `transaction-id` in the response header and contact [IBM Cloud support](https://watson.service-now.com/wcp)."
      }
    },
    "securitySchemes": {
      "IAM": {
        "type": "apiKey",
        "name": "Authorization",
        "description": "Your IBM Cloud IAM access token.",
        "in": "header"
      }
    },
    "schemas": {
      "ErrorCollection": {
        "description": "Collection of errors",
        "properties": {
          "error_code": {
            "description": "The error code encountered.",
            "type": "string",
            "example": "RG-CloudResourceGroupErrorResponse"
          },
          "message": {
            "description": "The error message.",
            "type": "string"
          },
          "status_code": {
            "description": "The status code.",
            "type": "string"
          },
          "transaction_id": {
            "description": "The transaction-id of the request.",
            "type": "string"
          }
        }
      },
      "ReqBodyResourceGroupPost": {
        "description": "Request body for creating a resource group",
        "type": "object",
        "required": [
          "name",
          "account_id"
        ],
        "properties": {
          "name": {
            "description": "The new name of the resource group.",
            "type": "string",
            "example": "test1"
          },
          "account_id": {
            "description": "The account id of the resource group.",
            "type": "string",
            "example": "25eba2a9-beef-450b-82cf-f5ad5e36c6dd"
          }
        }
      },
      "ReqBodyResourceGroupPatch": {
        "description": "Request body for updating a resource group",
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "description": "The new name of the resource group.",
            "type": "string"
          },
          "state": {
            "description": "The state of the resource group.",
            "type": "string"
          }
        }
      },
      "ResCreateResourceGroup": {
        "description": "A newly-created resource group",
        "type": "object",
        "properties": {
          "id": {
            "description": "An alpha-numeric value identifying the resource group.",
            "type": "string"
          },
          "crn": {
            "description": "The full CRN (cloud resource name) associated with the resource group. For more on this format, see [Cloud Resource Names](https://cloud.ibm.com/docs/account?topic=account-crn).",
            "type": "string"
          }
        }
      },
      "ResourceGroup": {
        "description": "A resource group",
        "type": "object",
        "properties": {
          "id": {
            "description": "An alpha-numeric value identifying the resource group.",
            "type": "string"
          },
          "crn": {
            "description": "The full CRN (cloud resource name) associated with the resource group. For more on this format, see [Cloud Resource Names](https://cloud.ibm.com/docs/account?topic=account-crn).",
            "type": "string"
          },
          "account_id": {
            "description": "An alpha-numeric value identifying the account ID.",
            "type": "string"
          },
          "name": {
            "description": "The human-readable name of the resource group.",
            "type": "string"
          },
          "state": {
            "description": "The state of the resource group.",
            "type": "string"
          },
          "default": {
            "description": "Identify if this resource group is default of the account or not.",
            "type": "boolean"
          },
          "quota_id": {
            "description": "An alpha-numeric value identifying the quota ID associated with the resource group.",
            "type": "string"
          },
          "quota_url": {
            "description": "The URL to access the quota details that associated with the resource group.",
            "type": "string"
          },
          "payment_methods_url": {
            "description": "The URL to access the payment methods details that associated with the resource group.",
            "type": "string"
          },
          "resource_linkages": {
            "description": "An array of the resources that linked to the resource group.",
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "teams_url": {
            "description": "The URL to access the team details that associated with the resource group.",
            "type": "string"
          },
          "created_at": {
            "description": "The date when the resource group was initially created.",
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "description": "The date when the resource group was last updated.",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "QuotaDefinition": {
        "description": "A returned quota definition",
        "type": "object",
        "properties": {
          "id": {
            "description": "An alpha-numeric value identifying the quota.",
            "type": "string"
          },
          "name": {
            "description": "The human-readable name of the quota.",
            "type": "string"
          },
          "type": {
            "description": "The type of the quota.",
            "type": "string"
          },
          "number_of_apps": {
            "description": "The total app limit.",
            "type": "number"
          },
          "number_of_service_instances": {
            "description": "The total service instances limit per app.",
            "type": "number"
          },
          "default_number_of_instances_per_lite_plan": {
            "description": "Default number of instances per lite plan.",
            "type": "number"
          },
          "instances_per_app": {
            "description": "The total instances limit per app.",
            "type": "number"
          },
          "instance_memory": {
            "description": "The total memory of app instance.",
            "type": "string"
          },
          "total_app_memory": {
            "description": "The total app memory capacity.",
            "type": "string"
          },
          "vsi_limit": {
            "description": "The VSI limit.",
            "type": "number"
          },
          "resource_quotas": {
            "description": "The resource quotas associated with a quota definition.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResourceQuota"
            }
          },
          "created_at": {
            "description": "The date when the quota was initially created.",
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "description": "The date when the quota was last updated.",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ResourceQuota": {
        "description": "A resource quota",
        "type": "object",
        "properties": {
          "id": {
            "description": "An alpha-numeric value identifying the quota.",
            "type": "string"
          },
          "resource_id": {
            "description": "The human-readable name of the quota.",
            "type": "string"
          },
          "crn": {
            "description": "The full CRN (cloud resource name) associated with the quota. For more on this format, see https://cloud.ibm.com/docs/account?topic=account-crn.",
            "type": "string"
          },
          "limit": {
            "description": "The limit number of this resource.",
            "type": "number"
          }
        }
      },
      "ResourceGroupList": {
        "description": "A list of resource groups",
        "type": "object",
        "required": [
          "resources"
        ],
        "properties": {
          "resources": {
            "description": "The list of resource groups",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResourceGroup"
            }
          }
        }
      },
      "QuotaDefinitionList": {
        "description": "A list of quota definitions",
        "type": "object",
        "required": [
          "resources"
        ],
        "properties": {
          "resources": {
            "description": "The list of quota definitions",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuotaDefinition"
            }
          }
        }
      }
    }
  },
  "x-aes-documentation": {
    "customized-codesnippet": [],
    "externalInfo": {
      "buyLink": "",
      "trialLink": ""
    },
    "externalLinks": [],
    "gettingstarted": [],
    "planPayload": []
  },
  "x-ibm-configuration": {
    "enforced": false,
    "testable": true,
    "phase": "realized",
    "cors": {
      "enabled": true
    }
  },
  "x-aes-provider": {
    "altApiBaseUrlObj": {
      "AltApiBaseUrl": "https://resource-controller.cloud.ibm.com",
      "BaseUrlVar": []
    },
    "apiStatus": "Draft",
    "apiType": "DocFirst",
    "callMethod": "PROXY",
    "cloudCategory": {
      "bluemixList": [],
      "platformList": [
        "bss"
      ],
      "technologyList": [
        "bluemix"
      ]
    },
    "companyName": "",
    "data_URX_id": "",
    "enableTryItOut": "No",
    "languagelist": [
      "Java",
      "JavaScript + jQuery",
      "Node",
      "Shell + curl"
    ],
    "linktoProduct": "",
    "marketPlaceList": [
      "Infrastructure"
    ],
    "namespaceList": [
      "apiexplorer",
      "bluemix"
    ],
    "productImage": "",
    "providerEmail": "mtuteja@us.ibm.com",
    "serviceStatus": "STAGE_PREVIEWs",
    "showPlan": "No",
    "showSwaggerDownload": "No",
    "summary": "Resource Manager",
    "uniqueShortName": "Resource_Manager_Ver2",
    "whoCanEdit": [
      "annawong@us.ibm.com",
      "xiayue@us.ibm.com",
      "chaoren@us.ibm.com"
    ]
  }
}