---
title: "Modify an existing application."
method: PUT
path: "/v2/organizations/{organization}/tenants/{tenant}/applications/{application}"
tags: ["Applications"]
---

# Modify an existing application.

`PUT /v2/organizations/{organization}/tenants/{tenant}/applications/{application}`

## Request

- Base URL: `https://docs.tetrate.io` (the document declares no server; this is the origin it was published from)
- URL: `https://docs.tetrate.io/v2/organizations/{organization}/tenants/{tenant}/applications/{application}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/tetrate/apis/tetrate-service-bridge-api/docs/v2/organizations/:organization/tenants/:tenant/applications/:application/put.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `organization` string, required
- `tenant` string, required
- `application` string, required

## Request body

- object: An Application represents a set of logical groupings of services that are related to each other and expose a set of APIs that implement a complete set of business logic.
  - `configResources` V2ConfigResource[]
    - `fqn` string: The FQN of the resource this status is computed for.
    - `expectedEtag` string: The expected etag field is used to check the if the configuration resource contents have changed. This might not be relevant for all configuration resources, so this field may not be set. If it is not set, the status will only report the presence or absence of the configuration resource, but not differences in its contents. When this field is present, the status will also reflect changes in the contents of the configuration resource, and report it as DIRTY if there are differences.
    - `exclusivelyOwned` boolean: The exclusively owned flag indicates if the referenced configuration resource is exclusively owned by the object. Configuration resources that are exclusively owned by an object will be deleted when the object is deleted.
  - `description` string
  - `displayName` string
  - `etag` string
  - `gatewayGroup` string: Optional FQN of the Gateway Group to be used by the application. If configured, this gateway group will be used by the application. If no namespaces are configured and no existing gateway group is set, a new gateway group claiming all namespaces in the workspace (`*/*`) will be created by default. All Ingress Gateway resources created for the APIs attached to the application will be created in the application's gateway group.
  - `namespaceSelector` V2NamespaceSelector
    - `names` string[], required: - `*/ns1` implies `ns1` namespace in any cluster. - `c1/ns1` implies `ns1` namespace from `c1` cluster. - `c1/*` implies all namespaces in `c1` cluster. - `*/*` implies all namespaces in all clusters. - `c1/ns*` implies all namespaces prefixes by `ns` in `c1` cluster.
  - `services` string[]: Optional list of services that are part of the application. This is a list of FQNs of services in the service registry. If omitted, the application is assumed to own all the services in the workspace. Note that a service can only be part of one application. If any of the services in the list is already in use by an existing application, application creation/modification will fail. If the list of services is not explicitly set and any service in the workspace is already in use by another application, application creation/modification will fail.
  - `workspace` string, required: FQN of the workspace this application is part of. The application will configure IngressGateways for the attached APIs in the different namespaces exposed by this workspace.

## Response `200`

A successful response.

- V2Application: An Application represents a set of logical groupings of services that are related to each other and expose a set of APIs that implement a complete set of business logic.
  - `fqn` string
  - `displayName` string
  - `etag` string
  - `description` string
  - `workspace` string, required: FQN of the workspace this application is part of. The application will configure IngressGateways for the attached APIs in the different namespaces exposed by this workspace.
  - `namespaceSelector` V2NamespaceSelector
    - `names` string[], required: - `*/ns1` implies `ns1` namespace in any cluster. - `c1/ns1` implies `ns1` namespace from `c1` cluster. - `c1/*` implies all namespaces in `c1` cluster. - `*/*` implies all namespaces in all clusters. - `c1/ns*` implies all namespaces prefixes by `ns` in `c1` cluster.
  - `gatewayGroup` string: Optional FQN of the Gateway Group to be used by the application. If configured, this gateway group will be used by the application. If no namespaces are configured and no existing gateway group is set, a new gateway group claiming all namespaces in the workspace (`*/*`) will be created by default. All Ingress Gateway resources created for the APIs attached to the application will be created in the application's gateway group.
  - `services` string[]: Optional list of services that are part of the application. This is a list of FQNs of services in the service registry. If omitted, the application is assumed to own all the services in the workspace. Note that a service can only be part of one application. If any of the services in the list is already in use by an existing application, application creation/modification will fail. If the list of services is not explicitly set and any service in the workspace is already in use by another application, application creation/modification will fail.
  - `configResources` V2ConfigResource[]
    - `fqn` string: The FQN of the resource this status is computed for.
    - `expectedEtag` string: The expected etag field is used to check the if the configuration resource contents have changed. This might not be relevant for all configuration resources, so this field may not be set. If it is not set, the status will only report the presence or absence of the configuration resource, but not differences in its contents. When this field is present, the status will also reflect changes in the contents of the configuration resource, and report it as DIRTY if there are differences.
    - `exclusivelyOwned` boolean: The exclusively owned flag indicates if the referenced configuration resource is exclusively owned by the object. Configuration resources that are exclusively owned by an object will be deleted when the object is deleted.

## Other responses

- `default`: An unexpected error response.

---

[API](https://skmtc.dev/tetrate/apis/tetrate-service-bridge-api.md) - [All operations](https://skmtc.dev/tetrate/apis/tetrate-service-bridge-api/llms.txt) - [OpenAPI document](https://skmtc.dev/tetrate/apis/tetrate-service-bridge-api/revisions/2f19c3a1ae57?raw)
