// Copyright 2022 Luca Casonato. All rights reserved. MIT license. /** * Apigee API Client for Deno * ========================== * * Use the Apigee API to programmatically develop and manage APIs with a set of RESTful operations. Develop and secure API proxies, deploy and undeploy API proxy revisions, monitor APIs, configure environments, manage users, and more. Note: This product is available as a free trial for a time period of 60 days. * * Docs: https://cloud.google.com/apigee-api-management/ * Source: https://googleapis.deno.dev/v1/apigee:v1.ts */ import { auth, CredentialsClient, GoogleAuth, request } from "/_/base@v1/mod.ts"; export { auth, GoogleAuth }; export type { CredentialsClient }; /** * Use the Apigee API to programmatically develop and manage APIs with a set of * RESTful operations. Develop and secure API proxies, deploy and undeploy API * proxy revisions, monitor APIs, configure environments, manage users, and * more. Note: This product is available as a free trial for a time period of 60 * days. */ export class Apigee { #client: CredentialsClient | undefined; #baseUrl: string; constructor(client?: CredentialsClient, baseUrl: string = "https://apigee.googleapis.com/") { this.#client = client; this.#baseUrl = baseUrl; } /** * Lists hybrid services and its trusted issuers service account ids. This * api is authenticated and unauthorized(allow all the users) and used by * runtime authn-authz service to query control plane's issuer service account * ids. * * @param name Required. Must be of the form `hybrid/issuers`. */ async hybridIssuersList(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListHybridIssuersResponse; } /** * Create a Datastore for an org * * @param parent Required. The parent organization name. Must be of the form `organizations/{org}`. */ async organizationsAnalyticsDatastoresCreate(parent: string, req: GoogleCloudApigeeV1Datastore): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/analytics/datastores`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1Datastore; } /** * Delete a Datastore from an org. * * @param name Required. Resource name of the Datastore to be deleted. Must be of the form `organizations/{org}/analytics/datastores/{datastoreId}` */ async organizationsAnalyticsDatastoresDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleProtobufEmpty; } /** * Get a Datastore * * @param name Required. Resource name of the Datastore to be get. Must be of the form `organizations/{org}/analytics/datastores/{datastoreId}` */ async organizationsAnalyticsDatastoresGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1Datastore; } /** * List Datastores * * @param parent Required. The parent organization name. Must be of the form `organizations/{org}`. */ async organizationsAnalyticsDatastoresList(parent: string, opts: OrganizationsAnalyticsDatastoresListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/analytics/datastores`); if (opts.targetType !== undefined) { url.searchParams.append("targetType", String(opts.targetType)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListDatastoresResponse; } /** * Test if Datastore configuration is correct. This includes checking if * credentials provided by customer have required permissions in target * destination storage * * @param parent Required. The parent organization name Must be of the form `organizations/{org}` */ async organizationsAnalyticsDatastoresTest(parent: string, req: GoogleCloudApigeeV1Datastore): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/analytics/datastores:test`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1TestDatastoreResponse; } /** * Update a Datastore * * @param name Required. The resource name of datastore to be updated. Must be of the form `organizations/{org}/analytics/datastores/{datastoreId}` */ async organizationsAnalyticsDatastoresUpdate(name: string, req: GoogleCloudApigeeV1Datastore): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PUT", body, }); return data as GoogleCloudApigeeV1Datastore; } /** * Updates or creates API product attributes. This API **replaces** the * current list of attributes with the attributes specified in the request * body. In this way, you can update existing attributes, add new attributes, * or delete existing attributes by omitting them from the request body. * **Note**: OAuth access tokens and Key Management Service (KMS) entities * (apps, developers, and API products) are cached for 180 seconds (current * default). Any custom attributes associated with entities also get cached * for at least 180 seconds after entity is accessed during runtime. In this * case, the `ExpiresIn` element on the OAuthV2 policy won't be able to expire * an access token in less than 180 seconds. * * @param name Required. Name of the API product. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}` */ async organizationsApiproductsAttributes(name: string, req: GoogleCloudApigeeV1Attributes): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }/attributes`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1Attributes; } /** * Deletes an API product attribute. * * @param name Required. Name of the API product attribute. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}/attributes/{attribute}` */ async organizationsApiproductsAttributesDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleCloudApigeeV1Attribute; } /** * Gets the value of an API product attribute. * * @param name Required. Name of the API product attribute. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}/attributes/{attribute}` */ async organizationsApiproductsAttributesGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1Attribute; } /** * Lists all API product attributes. * * @param parent Required. Name of the API product. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}` */ async organizationsApiproductsAttributesList(parent: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/attributes`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1Attributes; } /** * Updates the value of an API product attribute. **Note**: OAuth access * tokens and Key Management Service (KMS) entities (apps, developers, and API * products) are cached for 180 seconds (current default). Any custom * attributes associated with entities also get cached for at least 180 * seconds after entity is accessed during runtime. In this case, the * `ExpiresIn` element on the OAuthV2 policy won't be able to expire an access * token in less than 180 seconds. * * @param name Required. Name of the API product. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}` */ async organizationsApiproductsAttributesUpdateApiProductAttribute(name: string, req: GoogleCloudApigeeV1Attribute): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1Attribute; } /** * Creates an API product in an organization. You create API products after * you have proxied backend services using API proxies. An API product is a * collection of API resources combined with quota settings and metadata that * you can use to deliver customized and productized API bundles to your * developer community. This metadata can include: - Scope - Environments - * API proxies - Extensible profile API products enable you repackage APIs on * the fly, without having to do any additional coding or configuration. * Apigee recommends that you start with a simple API product including only * required elements. You then provision credentials to apps to enable them to * start testing your APIs. After you have authentication and authorization * working against a simple API product, you can iterate to create * finer-grained API products, defining different sets of API resources for * each API product. **WARNING:** - If you don't specify an API proxy in the * request body, *any* app associated with the product can make calls to *any* * API in your entire organization. - If you don't specify an environment in * the request body, the product allows access to all environments. For more * information, see What is an API product? * * @param parent Required. Name of the organization in which the API product will be created. Use the following structure in your request: `organizations/{org}` */ async organizationsApiproductsCreate(parent: string, req: GoogleCloudApigeeV1ApiProduct): Promise { req = serializeGoogleCloudApigeeV1ApiProduct(req); const url = new URL(`${this.#baseUrl}v1/${ parent }/apiproducts`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1ApiProduct(data); } /** * Deletes an API product from an organization. Deleting an API product * causes app requests to the resource URIs defined in the API product to * fail. Ensure that you create a new API product to serve existing apps, * unless your intention is to disable access to the resources defined in the * API product. The API product name required in the request URL is the * internal name of the product, not the display name. While they may be the * same, it depends on whether the API product was created via the UI or the * API. View the list of API products to verify the internal name. * * @param name Required. Name of the API product. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}` */ async organizationsApiproductsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return deserializeGoogleCloudApigeeV1ApiProduct(data); } /** * Gets configuration details for an API product. The API product name * required in the request URL is the internal name of the product, not the * display name. While they may be the same, it depends on whether the API * product was created via the UI or the API. View the list of API products to * verify the internal name. * * @param name Required. Name of the API product. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}` */ async organizationsApiproductsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ApiProduct(data); } /** * Lists all API product names for an organization. Filter the list by * passing an `attributename` and `attibutevalue`. The maximum number of API * products returned is 1000. You can paginate the list of API products * returned using the `startKey` and `count` query parameters. * * @param parent Required. Name of the organization. Use the following structure in your request: `organizations/{org}` */ async organizationsApiproductsList(parent: string, opts: OrganizationsApiproductsListOptions = {}): Promise { opts = serializeOrganizationsApiproductsListOptions(opts); const url = new URL(`${this.#baseUrl}v1/${ parent }/apiproducts`); if (opts.attributename !== undefined) { url.searchParams.append("attributename", String(opts.attributename)); } if (opts.attributevalue !== undefined) { url.searchParams.append("attributevalue", String(opts.attributevalue)); } if (opts.count !== undefined) { url.searchParams.append("count", String(opts.count)); } if (opts.expand !== undefined) { url.searchParams.append("expand", String(opts.expand)); } if (opts.startKey !== undefined) { url.searchParams.append("startKey", String(opts.startKey)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListApiProductsResponse(data); } /** * Create a rate plan that is associated with an API product in an * organization. Using rate plans, API product owners can monetize their API * products by configuring one or more of the following: - Billing frequency - * Initial setup fees for using an API product - Payment funding model * (postpaid only) - Fixed recurring or consumption-based charges for using an * API product - Revenue sharing with developer partners An API product can * have multiple rate plans associated with it but *only one* rate plan can be * active at any point of time. **Note: From the developer's perspective, they * purchase API products not rate plans. * * @param parent Required. Name of the API product that is associated with the rate plan. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}` */ async organizationsApiproductsRateplansCreate(parent: string, req: GoogleCloudApigeeV1RatePlan): Promise { req = serializeGoogleCloudApigeeV1RatePlan(req); const url = new URL(`${this.#baseUrl}v1/${ parent }/rateplans`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1RatePlan(data); } /** * Deletes a rate plan. * * @param name Required. ID of the rate plan. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}/rateplans/{rateplan}` */ async organizationsApiproductsRateplansDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return deserializeGoogleCloudApigeeV1RatePlan(data); } /** * Gets the details of a rate plan. * * @param name Required. Name of the rate plan. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}/rateplans/{rateplan}` */ async organizationsApiproductsRateplansGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1RatePlan(data); } /** * Lists all the rate plans for an API product. * * @param parent Required. Name of the API product. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}` Use `organizations/{org}/apiproducts/-` to return rate plans for all API products within the organization. */ async organizationsApiproductsRateplansList(parent: string, opts: OrganizationsApiproductsRateplansListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/rateplans`); if (opts.count !== undefined) { url.searchParams.append("count", String(opts.count)); } if (opts.expand !== undefined) { url.searchParams.append("expand", String(opts.expand)); } if (opts.orderBy !== undefined) { url.searchParams.append("orderBy", String(opts.orderBy)); } if (opts.startKey !== undefined) { url.searchParams.append("startKey", String(opts.startKey)); } if (opts.state !== undefined) { url.searchParams.append("state", String(opts.state)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListRatePlansResponse(data); } /** * Updates an existing rate plan. * * @param name Required. Name of the rate plan. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}/rateplans/{rateplan}` */ async organizationsApiproductsRateplansUpdate(name: string, req: GoogleCloudApigeeV1RatePlan): Promise { req = serializeGoogleCloudApigeeV1RatePlan(req); const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PUT", body, }); return deserializeGoogleCloudApigeeV1RatePlan(data); } /** * Updates an existing API product. You must include all required values, * whether or not you are updating them, as well as any optional values that * you are updating. The API product name required in the request URL is the * internal name of the product, not the display name. While they may be the * same, it depends on whether the API product was created via UI or API. View * the list of API products to identify their internal names. * * @param name Required. Name of the API product. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}` */ async organizationsApiproductsUpdate(name: string, req: GoogleCloudApigeeV1ApiProduct): Promise { req = serializeGoogleCloudApigeeV1ApiProduct(req); const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PUT", body, }); return deserializeGoogleCloudApigeeV1ApiProduct(data); } /** * Creates an API proxy. The API proxy created will not be accessible at * runtime until it is deployed to an environment. Create a new API proxy by * setting the `name` query parameter to the name of the API proxy. Import an * API proxy configuration bundle stored in zip format on your local machine * to your organization by doing the following: * Set the `name` query * parameter to the name of the API proxy. * Set the `action` query parameter * to `import`. * Set the `Content-Type` header to `multipart/form-data`. * * Pass as a file the name of API proxy configuration bundle stored in zip * format on your local machine using the `file` form field. **Note**: To * validate the API proxy configuration bundle only without importing it, set * the `action` query parameter to `validate`. When importing an API proxy * configuration bundle, if the API proxy does not exist, it will be created. * If the API proxy exists, then a new revision is created. Invalid API proxy * configurations are rejected, and a list of validation errors is returned to * the client. * * @param parent Required. Name of the organization in the following format: `organizations/{org}` */ async organizationsApisCreate(parent: string, req: GoogleApiHttpBody, opts: OrganizationsApisCreateOptions = {}): Promise { req = serializeGoogleApiHttpBody(req); const url = new URL(`${this.#baseUrl}v1/${ parent }/apis`); if (opts.action !== undefined) { url.searchParams.append("action", String(opts.action)); } if (opts.name !== undefined) { url.searchParams.append("name", String(opts.name)); } if (opts.validate !== undefined) { url.searchParams.append("validate", String(opts.validate)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1ApiProxyRevision(data); } /** * Deletes an API proxy and all associated endpoints, policies, resources, * and revisions. The API proxy must be undeployed before you can delete it. * * @param name Required. Name of the API proxy in the following format: `organizations/{org}/apis/{api}` */ async organizationsApisDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleCloudApigeeV1ApiProxy; } /** * Lists all deployments of an API proxy. * * @param parent Required. Name of the API proxy for which to return deployment information in the following format: `organizations/{org}/apis/{api}` */ async organizationsApisDeploymentsList(parent: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/deployments`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListDeploymentsResponse(data); } /** * Gets an API proxy including a list of existing revisions. * * @param name Required. Name of the API proxy in the following format: `organizations/{org}/apis/{api}` */ async organizationsApisGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ApiProxy; } /** * Creates a key value map in an API proxy. * * @param parent Required. Name of the environment in which to create the key value map. Use the following structure in your request: `organizations/{org}/apis/{api}` */ async organizationsApisKeyvaluemapsCreate(parent: string, req: GoogleCloudApigeeV1KeyValueMap): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/keyvaluemaps`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1KeyValueMap; } /** * Deletes a key value map from an API proxy. * * @param name Required. Name of the key value map. Use the following structure in your request: `organizations/{org}/apis/{api}/keyvaluemaps/{keyvaluemap}` */ async organizationsApisKeyvaluemapsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleCloudApigeeV1KeyValueMap; } /** * Creates key value entries in a key value map scoped to an organization, * environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and * higher. * * @param parent Required. Scope as indicated by the URI in which to create the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`. */ async organizationsApisKeyvaluemapsEntriesCreate(parent: string, req: GoogleCloudApigeeV1KeyValueEntry): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/entries`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1KeyValueEntry; } /** * Deletes a key value entry from a key value map scoped to an organization, * environment, or API proxy. **Notes:** * After you delete the key value * entry, the policy consuming the entry will continue to function with its * cached values for a few minutes. This is expected behavior. * Supported for * Apigee hybrid 1.8.x and higher. * * @param name Required. Scope as indicated by the URI in which to delete the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}/entries/{entry}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. */ async organizationsApisKeyvaluemapsEntriesDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleCloudApigeeV1KeyValueEntry; } /** * Get the key value entry value for a key value map scoped to an * organization, environment, or API proxy. **Note**: Supported for Apigee * hybrid 1.8.x and higher. * * @param name Required. Scope as indicated by the URI in which to fetch the key value map entry/value. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}/entries/{entry}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. */ async organizationsApisKeyvaluemapsEntriesGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1KeyValueEntry; } /** * Lists key value entries for key values maps scoped to an organization, * environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and * higher. * * @param parent Required. Scope as indicated by the URI in which to list key value maps. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`. */ async organizationsApisKeyvaluemapsEntriesList(parent: string, opts: OrganizationsApisKeyvaluemapsEntriesListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/entries`); if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListKeyValueEntriesResponse; } /** * Update key value entry scoped to an organization, environment, or API * proxy for an existing key. * * @param name Required. Scope as indicated by the URI in which to create the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`. */ async organizationsApisKeyvaluemapsEntriesUpdate(name: string, req: GoogleCloudApigeeV1KeyValueEntry): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PUT", body, }); return data as GoogleCloudApigeeV1KeyValueEntry; } /** * Lists the names of all API proxies in an organization. The names returned * correspond to the names defined in the configuration files for each API * proxy. * * @param parent Required. Name of the organization in the following format: `organizations/{org}` */ async organizationsApisList(parent: string, opts: OrganizationsApisListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/apis`); if (opts.includeMetaData !== undefined) { url.searchParams.append("includeMetaData", String(opts.includeMetaData)); } if (opts.includeRevisions !== undefined) { url.searchParams.append("includeRevisions", String(opts.includeRevisions)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListApiProxiesResponse; } /** * Updates an existing API proxy. * * @param name Required. API proxy to update in the following format: `organizations/{org}/apis/{api}` */ async organizationsApisPatch(name: string, req: GoogleCloudApigeeV1ApiProxy, opts: OrganizationsApisPatchOptions = {}): Promise { opts = serializeOrganizationsApisPatchOptions(opts); const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.updateMask !== undefined) { url.searchParams.append("updateMask", String(opts.updateMask)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PATCH", body, }); return data as GoogleCloudApigeeV1ApiProxy; } /** * Deletes an API proxy revision and all policies, resources, endpoints, and * revisions associated with it. The API proxy revision must be undeployed * before you can delete it. * * @param name Required. API proxy revision in the following format: `organizations/{org}/apis/{api}/revisions/{rev}` */ async organizationsApisRevisionsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return deserializeGoogleCloudApigeeV1ApiProxyRevision(data); } /** * Lists all deployments of an API proxy revision. * * @param parent Required. Name of the API proxy revision for which to return deployment information in the following format: `organizations/{org}/apis/{api}/revisions/{rev}`. */ async organizationsApisRevisionsDeploymentsList(parent: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/deployments`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListDeploymentsResponse(data); } /** * Gets an API proxy revision. To download the API proxy configuration bundle * for the specified revision as a zip file, set the `format` query parameter * to `bundle`. If you are using curl, specify `-o filename.zip` to save the * output to a file; otherwise, it displays to `stdout`. Then, develop the API * proxy configuration locally and upload the updated API proxy configuration * revision, as described in [updateApiProxyRevision](updateApiProxyRevision). * * @param name Required. API proxy revision in the following format: `organizations/{org}/apis/{api}/revisions/{rev}` */ async organizationsApisRevisionsGet(name: string, opts: OrganizationsApisRevisionsGetOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.format !== undefined) { url.searchParams.append("format", String(opts.format)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleApiHttpBody(data); } /** * Updates an existing API proxy revision by uploading the API proxy * configuration bundle as a zip file from your local machine. You can update * only API proxy revisions that have never been deployed. After deployment, * an API proxy revision becomes immutable, even if it is undeployed. Set the * `Content-Type` header to either `multipart/form-data` or * `application/octet-stream`. * * @param name Required. API proxy revision to update in the following format: `organizations/{org}/apis/{api}/revisions/{rev}` */ async organizationsApisRevisionsUpdateApiProxyRevision(name: string, req: GoogleApiHttpBody, opts: OrganizationsApisRevisionsUpdateApiProxyRevisionOptions = {}): Promise { req = serializeGoogleApiHttpBody(req); const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.validate !== undefined) { url.searchParams.append("validate", String(opts.validate)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1ApiProxyRevision(data); } /** * Creates an app and associates it with an AppGroup. This API associates the * AppGroup app with the specified API product and auto-generates an API key * for the app to use in calls to API proxies inside that API product. The * `name` is the unique ID of the app that you can use in API calls. * * @param parent Required. Name of the AppGroup. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}` */ async organizationsAppgroupsAppsCreate(parent: string, req: GoogleCloudApigeeV1AppGroupApp): Promise { req = serializeGoogleCloudApigeeV1AppGroupApp(req); const url = new URL(`${this.#baseUrl}v1/${ parent }/apps`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1AppGroupApp(data); } /** * Deletes an AppGroup app. **Note**: The delete operation is asynchronous. * The AppGroup app is deleted immediately, but its associated resources, such * as app keys or access tokens, may take anywhere from a few seconds to a few * minutes to be deleted. * * @param name Required. Name of the AppGroup app. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}` */ async organizationsAppgroupsAppsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return deserializeGoogleCloudApigeeV1AppGroupApp(data); } /** * Returns the details for an AppGroup app. * * @param name Required. Name of the AppGroup app. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}` */ async organizationsAppgroupsAppsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1AppGroupApp(data); } /** * Removes an API product from an app's consumer key. After the API product * is removed, the app cannot access the API resources defined in that API * product. **Note**: The consumer key is not removed, only its association * with the API product. * * @param name Required. Parent of the AppGroup app key. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}/keys/{key}/apiproducts/{apiproduct}` */ async organizationsAppgroupsAppsKeysApiproductsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return deserializeGoogleCloudApigeeV1AppGroupAppKey(data); } /** * Approves or revokes the consumer key for an API product. After a consumer * key is approved, the app can use it to access APIs. A consumer key that is * revoked or pending cannot be used to access an API. Any access tokens * associated with a revoked consumer key will remain active. However, Apigee * checks the status of the consumer key and if set to `revoked` will not * allow access to the API. * * @param name Required. Name of the API product in the developer app key in the following format: `organizations/{org}/appgroups/{app_group_name}/apps/{app}/keys/{key}/apiproducts/{apiproduct}` */ async organizationsAppgroupsAppsKeysApiproductsUpdateAppGroupAppKeyApiProduct(name: string, opts: OrganizationsAppgroupsAppsKeysApiproductsUpdateAppGroupAppKeyApiProductOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.action !== undefined) { url.searchParams.append("action", String(opts.action)); } const data = await request(url.href, { client: this.#client, method: "POST", }); return data as GoogleProtobufEmpty; } /** * Creates a custom consumer key and secret for a AppGroup app. This is * particularly useful if you want to migrate existing consumer keys and * secrets to Apigee from another system. Consumer keys and secrets can * contain letters, numbers, underscores, and hyphens. No other special * characters are allowed. To avoid service disruptions, a consumer key and * secret should not exceed 2 KBs each. **Note**: When creating the consumer * key and secret, an association to API products will not be made. Therefore, * you should not specify the associated API products in your request. * Instead, use the ProductizeAppGroupAppKey API to make the association after * the consumer key and secret are created. If a consumer key and secret * already exist, you can keep them or delete them using the * DeleteAppGroupAppKey API. * * @param parent Required. Parent of the AppGroup app key. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}/keys` */ async organizationsAppgroupsAppsKeysCreate(parent: string, req: GoogleCloudApigeeV1AppGroupAppKey): Promise { req = serializeGoogleCloudApigeeV1AppGroupAppKey(req); const url = new URL(`${this.#baseUrl}v1/${ parent }/keys`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1AppGroupAppKey(data); } /** * Deletes an app's consumer key and removes all API products associated with * the app. After the consumer key is deleted, it cannot be used to access any * APIs. * * @param name Required. Name of the AppGroup app key. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}/keys/{key}` */ async organizationsAppgroupsAppsKeysDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return deserializeGoogleCloudApigeeV1AppGroupAppKey(data); } /** * Gets details for a consumer key for a AppGroup app, including the key and * secret value, associated API products, and other information. * * @param name Required. Name of the AppGroup app key. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}/keys/{key}` */ async organizationsAppgroupsAppsKeysGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1AppGroupAppKey(data); } /** * Adds an API product to an AppGroupAppKey, enabling the app that holds the * key to access the API resources bundled in the API product. In addition, * you can add attributes to the AppGroupAppKey. This API replaces the * existing attributes with those specified in the request. Include or exclude * any existing attributes that you want to retain or delete, respectively. * You can use the same key to access all API products associated with the * app. * * @param name Required. Name of the AppGroup app key. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}/keys/{key}` */ async organizationsAppgroupsAppsKeysUpdateAppGroupAppKey(name: string, req: GoogleCloudApigeeV1UpdateAppGroupAppKeyRequest): Promise { req = serializeGoogleCloudApigeeV1UpdateAppGroupAppKeyRequest(req); const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1AppGroupAppKey(data); } /** * Lists all apps created by an AppGroup in an Apigee organization. * Optionally, you can request an expanded view of the AppGroup apps. Lists * all AppGroupApps in an AppGroup. A maximum of 1000 AppGroup apps are * returned in the response if PageSize is not specified, or if the PageSize * is greater than 1000. * * @param parent Required. Name of the AppGroup. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}` */ async organizationsAppgroupsAppsList(parent: string, opts: OrganizationsAppgroupsAppsListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/apps`); if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListAppGroupAppsResponse(data); } /** * Updates the details for an AppGroup app. In addition, you can add an API * product to an AppGroup app and automatically generate an API key for the * app to use when calling APIs in the API product. If you want to use an * existing API key for the API product, add the API product to the API key * using the UpdateAppGroupAppKey API. Using this API, you cannot update the * app name, as it is the primary key used to identify the app and cannot be * changed. This API replaces the existing attributes with those specified in * the request. Include or exclude any existing attributes that you want to * retain or delete, respectively. * * @param name Required. Name of the AppGroup app. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}` */ async organizationsAppgroupsAppsUpdate(name: string, req: GoogleCloudApigeeV1AppGroupApp, opts: OrganizationsAppgroupsAppsUpdateOptions = {}): Promise { req = serializeGoogleCloudApigeeV1AppGroupApp(req); const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.action !== undefined) { url.searchParams.append("action", String(opts.action)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PUT", body, }); return deserializeGoogleCloudApigeeV1AppGroupApp(data); } /** * Creates an AppGroup. Once created, user can register apps under the * AppGroup to obtain secret key and password. At creation time, the * AppGroup's state is set as `active`. * * @param parent Required. Name of the Apigee organization in which the AppGroup is created. Use the following structure in your request: `organizations/{org}`. */ async organizationsAppgroupsCreate(parent: string, req: GoogleCloudApigeeV1AppGroup): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/appgroups`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1AppGroup; } /** * Deletes an AppGroup. All app and API keys associations with the AppGroup * are also removed. **Warning**: This API will permanently delete the * AppGroup and related artifacts. **Note**: The delete operation is * asynchronous. The AppGroup app is deleted immediately, but its associated * resources, such as apps and API keys, may take anywhere from a few seconds * to a few minutes to be deleted. * * @param name Required. Name of the AppGroup. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}` */ async organizationsAppgroupsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleCloudApigeeV1AppGroup; } /** * Returns the AppGroup details for the provided AppGroup name in the request * URI. * * @param name Required. Name of the AppGroup. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}` */ async organizationsAppgroupsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1AppGroup; } /** * Lists all AppGroups in an organization. A maximum of 1000 AppGroups are * returned in the response if PageSize is not specified, or if the PageSize * is greater than 1000. * * @param parent Required. Name of the Apigee organization. Use the following structure in your request: `organizations/{org}`. */ async organizationsAppgroupsList(parent: string, opts: OrganizationsAppgroupsListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/appgroups`); if (opts.filter !== undefined) { url.searchParams.append("filter", String(opts.filter)); } if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListAppGroupsResponse; } /** * Updates an AppGroup. This API replaces the existing AppGroup details with * those specified in the request. Include or exclude any existing details * that you want to retain or delete, respectively. Note that the state of the * AppGroup should be updated using `action`, and not via AppGroup. * * @param name Required. Name of the AppGroup. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}` */ async organizationsAppgroupsUpdate(name: string, req: GoogleCloudApigeeV1AppGroup, opts: OrganizationsAppgroupsUpdateOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.action !== undefined) { url.searchParams.append("action", String(opts.action)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PUT", body, }); return data as GoogleCloudApigeeV1AppGroup; } /** * Gets the app profile for the specified app ID. * * @param name Required. App ID in the following format: `organizations/{org}/apps/{app}` */ async organizationsAppsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1App(data); } /** * Lists IDs of apps within an organization that have the specified app * status (approved or revoked) or are of the specified app type (developer or * company). * * @param parent Required. Resource path of the parent in the following format: `organizations/{org}` */ async organizationsAppsList(parent: string, opts: OrganizationsAppsListOptions = {}): Promise { opts = serializeOrganizationsAppsListOptions(opts); const url = new URL(`${this.#baseUrl}v1/${ parent }/apps`); if (opts.apiProduct !== undefined) { url.searchParams.append("apiProduct", String(opts.apiProduct)); } if (opts.apptype !== undefined) { url.searchParams.append("apptype", String(opts.apptype)); } if (opts.expand !== undefined) { url.searchParams.append("expand", String(opts.expand)); } if (opts.filter !== undefined) { url.searchParams.append("filter", String(opts.filter)); } if (opts.ids !== undefined) { url.searchParams.append("ids", String(opts.ids)); } if (opts.includeCred !== undefined) { url.searchParams.append("includeCred", String(opts.includeCred)); } if (opts.keyStatus !== undefined) { url.searchParams.append("keyStatus", String(opts.keyStatus)); } if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } if (opts.rows !== undefined) { url.searchParams.append("rows", String(opts.rows)); } if (opts.startKey !== undefined) { url.searchParams.append("startKey", String(opts.startKey)); } if (opts.status !== undefined) { url.searchParams.append("status", String(opts.status)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListAppsResponse(data); } /** * Creates an Apigee organization. See [Create an Apigee * organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org). * */ async organizationsCreate(req: GoogleCloudApigeeV1Organization, opts: OrganizationsCreateOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/organizations`); if (opts.parent !== undefined) { url.searchParams.append("parent", String(opts.parent)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleLongrunningOperation; } /** * Creates a new data collector. * * @param parent Required. Name of the organization in which to create the data collector in the following format: `organizations/{org}`. */ async organizationsDatacollectorsCreate(parent: string, req: GoogleCloudApigeeV1DataCollector, opts: OrganizationsDatacollectorsCreateOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/datacollectors`); if (opts.dataCollectorId !== undefined) { url.searchParams.append("dataCollectorId", String(opts.dataCollectorId)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1DataCollector; } /** * Deletes a data collector. * * @param name Required. Name of the data collector in the following format: `organizations/{org}/datacollectors/{data_collector_id}`. */ async organizationsDatacollectorsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleProtobufEmpty; } /** * Gets a data collector. * * @param name Required. Name of the data collector in the following format: `organizations/{org}/datacollectors/{data_collector_id}`. */ async organizationsDatacollectorsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1DataCollector; } /** * Lists all data collectors. * * @param parent Required. Name of the organization for which to list data collectors in the following format: `organizations/{org}`. */ async organizationsDatacollectorsList(parent: string, opts: OrganizationsDatacollectorsListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/datacollectors`); if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListDataCollectorsResponse; } /** * Updates a data collector. * * @param name Required. Name of the data collector in the following format: `organizations/{org}/datacollectors/{data_collector_id}`. */ async organizationsDatacollectorsPatch(name: string, req: GoogleCloudApigeeV1DataCollector, opts: OrganizationsDatacollectorsPatchOptions = {}): Promise { opts = serializeOrganizationsDatacollectorsPatchOptions(opts); const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.updateMask !== undefined) { url.searchParams.append("updateMask", String(opts.updateMask)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PATCH", body, }); return data as GoogleCloudApigeeV1DataCollector; } /** * Delete an Apigee organization. For organizations with BillingType * EVALUATION, an immediate deletion is performed. For paid organizations * (Subscription or Pay-as-you-go), a soft-deletion is performed. The * organization can be restored within the soft-deletion period, which is * specified using the `retention` field in the request or by filing a support * ticket with Apigee. During the data retention period specified in the * request, the Apigee organization cannot be recreated in the same Google * Cloud project. **IMPORTANT: The default data retention setting for this * operation is 7 days. To permanently delete the organization in 24 hours, * set the retention parameter to `MINIMUM`.** * * @param name Required. Name of the organization. Use the following structure in your request: `organizations/{org}` */ async organizationsDelete(name: string, opts: OrganizationsDeleteOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.retention !== undefined) { url.searchParams.append("retention", String(opts.retention)); } const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleLongrunningOperation; } /** * Lists all deployments of API proxies or shared flows. * * @param parent Required. Name of the organization for which to return deployment information in the following format: `organizations/{org}` */ async organizationsDeploymentsList(parent: string, opts: OrganizationsDeploymentsListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/deployments`); if (opts.sharedFlows !== undefined) { url.searchParams.append("sharedFlows", String(opts.sharedFlows)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListDeploymentsResponse(data); } /** * Updates attributes for a developer app. This API replaces the current * attributes with those specified in the request. * * @param name Required. Name of the developer app. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}` */ async organizationsDevelopersAppsAttributes(name: string, req: GoogleCloudApigeeV1Attributes): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }/attributes`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1Attributes; } /** * Deletes a developer app attribute. * * @param name Required. Name of the developer app attribute. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}/attributes/{attribute}` */ async organizationsDevelopersAppsAttributesDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleCloudApigeeV1Attribute; } /** * Returns a developer app attribute. * * @param name Required. Name of the developer app attribute. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}/attributes/{attribute}` */ async organizationsDevelopersAppsAttributesGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1Attribute; } /** * Returns a list of all developer app attributes. * * @param parent Required. Name of the developer app. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}` */ async organizationsDevelopersAppsAttributesList(parent: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/attributes`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1Attributes; } /** * Updates a developer app attribute. **Note**: OAuth access tokens and Key * Management Service (KMS) entities (apps, developers, and API products) are * cached for 180 seconds (current default). Any custom attributes associated * with these entities are cached for at least 180 seconds after the entity is * accessed at runtime. Therefore, an `ExpiresIn` element on the OAuthV2 * policy won't be able to expire an access token in less than 180 seconds. * * @param name Required. Name of the developer app attribute. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}/attributes/{attribute}` */ async organizationsDevelopersAppsAttributesUpdateDeveloperAppAttribute(name: string, req: GoogleCloudApigeeV1Attribute): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1Attribute; } /** * Creates an app associated with a developer. This API associates the * developer app with the specified API product and auto-generates an API key * for the app to use in calls to API proxies inside that API product. The * `name` is the unique ID of the app that you can use in API calls. The * `DisplayName` (set as an attribute) appears in the UI. If you don't set the * `DisplayName` attribute, the `name` appears in the UI. * * @param parent Required. Name of the developer. Use the following structure in your request: `organizations/{org}/developers/{developer_email}` */ async organizationsDevelopersAppsCreate(parent: string, req: GoogleCloudApigeeV1DeveloperApp): Promise { req = serializeGoogleCloudApigeeV1DeveloperApp(req); const url = new URL(`${this.#baseUrl}v1/${ parent }/apps`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1DeveloperApp(data); } /** * Deletes a developer app. **Note**: The delete operation is asynchronous. * The developer app is deleted immediately, but its associated resources, * such as app keys or access tokens, may take anywhere from a few seconds to * a few minutes to be deleted. * * @param name Required. Name of the developer app. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}` */ async organizationsDevelopersAppsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return deserializeGoogleCloudApigeeV1DeveloperApp(data); } /** * Manages access to a developer app by enabling you to: * Approve or revoke * a developer app * Generate a new consumer key and secret for a developer * app To approve or revoke a developer app, set the `action` query parameter * to `approve` or `revoke`, respectively, and the `Content-Type` header to * `application/octet-stream`. If a developer app is revoked, none of its API * keys are valid for API calls even though the keys are still approved. If * successful, the API call returns the following HTTP status code: `204 No * Content` To generate a new consumer key and secret for a developer app, * pass the new key/secret details. Rather than replace an existing key, this * API generates a new key. In this case, multiple key pairs may be associated * with a single developer app. Each key pair has an independent status * (`approve` or `revoke`) and expiration time. Any approved, non-expired key * can be used in an API call. For example, if you're using API key rotation, * you can generate new keys with expiration times that overlap keys that are * going to expire. You might also generate a new consumer key/secret if the * security of the original key/secret is compromised. The `keyExpiresIn` * property defines the expiration time for the API key in milliseconds. If * you don't set this property or set it to `-1`, the API key never expires. * **Notes**: * When generating a new key/secret, this API replaces the * existing attributes, notes, and callback URLs with those specified in the * request. Include or exclude any existing information that you want to * retain or delete, respectively. * To migrate existing consumer keys and * secrets to hybrid from another system, see the CreateDeveloperAppKey API. * * @param name Required. Name of the developer app. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}` */ async organizationsDevelopersAppsGenerateKeyPairOrUpdateDeveloperAppStatus(name: string, req: GoogleCloudApigeeV1DeveloperApp, opts: OrganizationsDevelopersAppsGenerateKeyPairOrUpdateDeveloperAppStatusOptions = {}): Promise { req = serializeGoogleCloudApigeeV1DeveloperApp(req); const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.action !== undefined) { url.searchParams.append("action", String(opts.action)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1DeveloperApp(data); } /** * Returns the details for a developer app. * * @param name Required. Name of the developer app. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}` */ async organizationsDevelopersAppsGet(name: string, opts: OrganizationsDevelopersAppsGetOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.entity !== undefined) { url.searchParams.append("entity", String(opts.entity)); } if (opts.query !== undefined) { url.searchParams.append("query", String(opts.query)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1DeveloperApp(data); } /** * Removes an API product from an app's consumer key. After the API product * is removed, the app cannot access the API resources defined in that API * product. **Note**: The consumer key is not removed, only its association * with the API product. * * @param name Name of the API product in the developer app key in the following format: `organizations/{org}/developers/{developer_email}/apps/{app}/keys/{key}/apiproducts/{apiproduct}` */ async organizationsDevelopersAppsKeysApiproductsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return deserializeGoogleCloudApigeeV1DeveloperAppKey(data); } /** * Approves or revokes the consumer key for an API product. After a consumer * key is approved, the app can use it to access APIs. A consumer key that is * revoked or pending cannot be used to access an API. Any access tokens * associated with a revoked consumer key will remain active. However, Apigee * checks the status of the consumer key and if set to `revoked` will not * allow access to the API. * * @param name Name of the API product in the developer app key in the following format: `organizations/{org}/developers/{developer_email}/apps/{app}/keys/{key}/apiproducts/{apiproduct}` */ async organizationsDevelopersAppsKeysApiproductsUpdateDeveloperAppKeyApiProduct(name: string, opts: OrganizationsDevelopersAppsKeysApiproductsUpdateDeveloperAppKeyApiProductOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.action !== undefined) { url.searchParams.append("action", String(opts.action)); } const data = await request(url.href, { client: this.#client, method: "POST", }); return data as GoogleProtobufEmpty; } /** * Creates a custom consumer key and secret for a developer app. This is * particularly useful if you want to migrate existing consumer keys and * secrets to Apigee from another system. Consumer keys and secrets can * contain letters, numbers, underscores, and hyphens. No other special * characters are allowed. To avoid service disruptions, a consumer key and * secret should not exceed 2 KBs each. **Note**: When creating the consumer * key and secret, an association to API products will not be made. Therefore, * you should not specify the associated API products in your request. * Instead, use the UpdateDeveloperAppKey API to make the association after * the consumer key and secret are created. If a consumer key and secret * already exist, you can keep them or delete them using the * DeleteDeveloperAppKey API. **Note**: All keys start out with * status=approved, even if status=revoked is passed when the key is created. * To revoke a key, use the UpdateDeveloperAppKey API. * * @param parent Parent of the developer app key. Use the following structure in your request: 'organizations/{org}/developers/{developerEmail}/apps/{appName}' */ async organizationsDevelopersAppsKeysCreate(parent: string, req: GoogleCloudApigeeV1DeveloperAppKey): Promise { req = serializeGoogleCloudApigeeV1DeveloperAppKey(req); const url = new URL(`${this.#baseUrl}v1/${ parent }/keys`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1DeveloperAppKey(data); } /** * Creates a custom consumer key and secret for a developer app. This is * particularly useful if you want to migrate existing consumer keys and * secrets to Apigee from another system. Consumer keys and secrets can * contain letters, numbers, underscores, and hyphens. No other special * characters are allowed. To avoid service disruptions, a consumer key and * secret should not exceed 2 KBs each. **Note**: When creating the consumer * key and secret, an association to API products will not be made. Therefore, * you should not specify the associated API products in your request. * Instead, use the UpdateDeveloperAppKey API to make the association after * the consumer key and secret are created. If a consumer key and secret * already exist, you can keep them or delete them using the * DeleteDeveloperAppKey API. **Note**: All keys start out with * status=approved, even if status=revoked is passed when the key is created. * To revoke a key, use the UpdateDeveloperAppKey API. * * @param parent Parent of the developer app key. Use the following structure in your request: 'organizations/{org}/developers/{developerEmail}/apps/{appName}' */ async organizationsDevelopersAppsKeysCreateCreate(parent: string, req: GoogleCloudApigeeV1DeveloperAppKey): Promise { req = serializeGoogleCloudApigeeV1DeveloperAppKey(req); const url = new URL(`${this.#baseUrl}v1/${ parent }/keys/create`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1DeveloperAppKey(data); } /** * Deletes an app's consumer key and removes all API products associated with * the app. After the consumer key is deleted, it cannot be used to access any * APIs. **Note**: After you delete a consumer key, you may want to: 1. Create * a new consumer key and secret for the developer app using the * CreateDeveloperAppKey API, and subsequently add an API product to the key * using the UpdateDeveloperAppKey API. 2. Delete the developer app, if it is * no longer required. * * @param name Name of the developer app key. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}/keys/{key}` */ async organizationsDevelopersAppsKeysDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return deserializeGoogleCloudApigeeV1DeveloperAppKey(data); } /** * Gets details for a consumer key for a developer app, including the key and * secret value, associated API products, and other information. * * @param name Name of the developer app key. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}/keys/{key}` */ async organizationsDevelopersAppsKeysGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1DeveloperAppKey(data); } /** * Updates the scope of an app. This API replaces the existing scopes with * those specified in the request. Include or exclude any existing scopes that * you want to retain or delete, respectively. The specified scopes must * already be defined for the API products associated with the app. This API * sets the `scopes` element under the `apiProducts` element in the attributes * of the app. * * @param name Name of the developer app key. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}/keys/{key}` */ async organizationsDevelopersAppsKeysReplaceDeveloperAppKey(name: string, req: GoogleCloudApigeeV1DeveloperAppKey): Promise { req = serializeGoogleCloudApigeeV1DeveloperAppKey(req); const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PUT", body, }); return deserializeGoogleCloudApigeeV1DeveloperAppKey(data); } /** * Adds an API product to a developer app key, enabling the app that holds * the key to access the API resources bundled in the API product. In * addition, you can add attributes to a developer app key. This API replaces * the existing attributes with those specified in the request. Include or * exclude any existing attributes that you want to retain or delete, * respectively. You can use the same key to access all API products * associated with the app. * * @param name Name of the developer app key. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}/keys/{key}` */ async organizationsDevelopersAppsKeysUpdateDeveloperAppKey(name: string, req: GoogleCloudApigeeV1DeveloperAppKey, opts: OrganizationsDevelopersAppsKeysUpdateDeveloperAppKeyOptions = {}): Promise { req = serializeGoogleCloudApigeeV1DeveloperAppKey(req); const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.action !== undefined) { url.searchParams.append("action", String(opts.action)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1DeveloperAppKey(data); } /** * Lists all apps created by a developer in an Apigee organization. * Optionally, you can request an expanded view of the developer apps. A * maximum of 100 developer apps are returned per API call. You can paginate * the list of deveoper apps returned using the `startKey` and `count` query * parameters. * * @param parent Required. Name of the developer. Use the following structure in your request: `organizations/{org}/developers/{developer_email}` */ async organizationsDevelopersAppsList(parent: string, opts: OrganizationsDevelopersAppsListOptions = {}): Promise { opts = serializeOrganizationsDevelopersAppsListOptions(opts); const url = new URL(`${this.#baseUrl}v1/${ parent }/apps`); if (opts.count !== undefined) { url.searchParams.append("count", String(opts.count)); } if (opts.expand !== undefined) { url.searchParams.append("expand", String(opts.expand)); } if (opts.shallowExpand !== undefined) { url.searchParams.append("shallowExpand", String(opts.shallowExpand)); } if (opts.startKey !== undefined) { url.searchParams.append("startKey", String(opts.startKey)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListDeveloperAppsResponse(data); } /** * Updates the details for a developer app. In addition, you can add an API * product to a developer app and automatically generate an API key for the * app to use when calling APIs in the API product. If you want to use an * existing API key for the API product, add the API product to the API key * using the UpdateDeveloperAppKey API. Using this API, you cannot update the * following: * App name as it is the primary key used to identify the app and * cannot be changed. * Scopes associated with the app. Instead, use the * ReplaceDeveloperAppKey API. This API replaces the existing attributes with * those specified in the request. Include or exclude any existing attributes * that you want to retain or delete, respectively. * * @param name Required. Name of the developer app. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}` */ async organizationsDevelopersAppsUpdate(name: string, req: GoogleCloudApigeeV1DeveloperApp): Promise { req = serializeGoogleCloudApigeeV1DeveloperApp(req); const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PUT", body, }); return deserializeGoogleCloudApigeeV1DeveloperApp(data); } /** * Updates developer attributes. This API replaces the existing attributes * with those specified in the request. Add new attributes, and include or * exclude any existing attributes that you want to retain or remove, * respectively. The custom attribute limit is 18. **Note**: OAuth access * tokens and Key Management Service (KMS) entities (apps, developers, and API * products) are cached for 180 seconds (default). Any custom attributes * associated with these entities are cached for at least 180 seconds after * the entity is accessed at runtime. Therefore, an `ExpiresIn` element on the * OAuthV2 policy won't be able to expire an access token in less than 180 * seconds. * * @param parent Required. Email address of the developer for which attributes are being updated. Use the following structure in your request: `organizations/{org}/developers/{developer_email}` */ async organizationsDevelopersAttributes(parent: string, req: GoogleCloudApigeeV1Attributes): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/attributes`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1Attributes; } /** * Deletes a developer attribute. * * @param name Required. Name of the developer attribute. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/attributes/{attribute}` */ async organizationsDevelopersAttributesDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleCloudApigeeV1Attribute; } /** * Returns the value of the specified developer attribute. * * @param name Required. Name of the developer attribute. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/attributes/{attribute}` */ async organizationsDevelopersAttributesGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1Attribute; } /** * Returns a list of all developer attributes. * * @param parent Required. Email address of the developer for which attributes are being listed. Use the following structure in your request: `organizations/{org}/developers/{developer_email}` */ async organizationsDevelopersAttributesList(parent: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/attributes`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1Attributes; } /** * Updates a developer attribute. **Note**: OAuth access tokens and Key * Management Service (KMS) entities (apps, developers, and API products) are * cached for 180 seconds (default). Any custom attributes associated with * these entities are cached for at least 180 seconds after the entity is * accessed at runtime. Therefore, an `ExpiresIn` element on the OAuthV2 * policy won't be able to expire an access token in less than 180 seconds. * * @param name Required. Name of the developer attribute. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/attributes/{attribute}` */ async organizationsDevelopersAttributesUpdateDeveloperAttribute(name: string, req: GoogleCloudApigeeV1Attribute): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1Attribute; } /** * Adjust the prepaid balance for the developer. This API will be used in * scenarios where the developer has been under-charged or over-charged. * * @param name Required. Account balance for the developer. Use the following structure in your request: `organizations/{org}/developers/{developer}/balance` */ async organizationsDevelopersBalanceAdjust(name: string, req: GoogleCloudApigeeV1AdjustDeveloperBalanceRequest): Promise { req = serializeGoogleCloudApigeeV1AdjustDeveloperBalanceRequest(req); const url = new URL(`${this.#baseUrl}v1/${ name }:adjust`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1DeveloperBalance; } /** * Credits the account balance for the developer. * * @param name Required. Account balance for the developer. Use the following structure in your request: `organizations/{org}/developers/{developer}/balance` */ async organizationsDevelopersBalanceCredit(name: string, req: GoogleCloudApigeeV1CreditDeveloperBalanceRequest): Promise { req = serializeGoogleCloudApigeeV1CreditDeveloperBalanceRequest(req); const url = new URL(`${this.#baseUrl}v1/${ name }:credit`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1DeveloperBalance; } /** * Creates a developer. Once created, the developer can register an app and * obtain an API key. At creation time, a developer is set as `active`. To * change the developer status, use the SetDeveloperStatus API. * * @param parent Required. Name of the Apigee organization in which the developer is created. Use the following structure in your request: `organizations/{org}`. */ async organizationsDevelopersCreate(parent: string, req: GoogleCloudApigeeV1Developer): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/developers`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1Developer; } /** * Deletes a developer. All apps and API keys associated with the developer * are also removed. **Warning**: This API will permanently delete the * developer and related artifacts. To avoid permanently deleting developers * and their artifacts, set the developer status to `inactive` using the * SetDeveloperStatus API. **Note**: The delete operation is asynchronous. The * developer app is deleted immediately, but its associated resources, such as * apps and API keys, may take anywhere from a few seconds to a few minutes to * be deleted. * * @param name Required. Email address of the developer. Use the following structure in your request: `organizations/{org}/developers/{developer_email}` */ async organizationsDevelopersDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleCloudApigeeV1Developer; } /** * Returns the developer details, including the developer's name, email * address, apps, and other information. **Note**: The response includes only * the first 100 developer apps. * * @param name Required. Email address of the developer. Use the following structure in your request: `organizations/{org}/developers/{developer_email}` */ async organizationsDevelopersGet(name: string, opts: OrganizationsDevelopersGetOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.action !== undefined) { url.searchParams.append("action", String(opts.action)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1Developer; } /** * Gets the account balance for the developer. * * @param name Required. Account balance for the developer. Use the following structure in your request: `organizations/{org}/developers/{developer}/balance` */ async organizationsDevelopersGetBalance(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1DeveloperBalance; } /** * Gets the monetization configuration for the developer. * * @param name Required. Monetization configuration for the developer. Use the following structure in your request: `organizations/{org}/developers/{developer}/monetizationConfig` */ async organizationsDevelopersGetMonetizationConfig(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1DeveloperMonetizationConfig; } /** * Lists all developers in an organization by email address. By default, the * response does not include company developers. Set the `includeCompany` * query parameter to `true` to include company developers. **Note**: A * maximum of 1000 developers are returned in the response. You paginate the * list of developers returned using the `startKey` and `count` query * parameters. * * @param parent Required. Name of the Apigee organization. Use the following structure in your request: `organizations/{org}`. */ async organizationsDevelopersList(parent: string, opts: OrganizationsDevelopersListOptions = {}): Promise { opts = serializeOrganizationsDevelopersListOptions(opts); const url = new URL(`${this.#baseUrl}v1/${ parent }/developers`); if (opts.app !== undefined) { url.searchParams.append("app", String(opts.app)); } if (opts.count !== undefined) { url.searchParams.append("count", String(opts.count)); } if (opts.expand !== undefined) { url.searchParams.append("expand", String(opts.expand)); } if (opts.ids !== undefined) { url.searchParams.append("ids", String(opts.ids)); } if (opts.includeCompany !== undefined) { url.searchParams.append("includeCompany", String(opts.includeCompany)); } if (opts.startKey !== undefined) { url.searchParams.append("startKey", String(opts.startKey)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListOfDevelopersResponse; } /** * Sets the status of a developer. A developer is `active` by default. If you * set a developer's status to `inactive`, the API keys assigned to the * developer apps are no longer valid even though the API keys are set to * `approved`. Inactive developers can still sign in to the developer portal * and create apps; however, any new API keys generated during app creation * won't work. To set the status of a developer, set the `action` query * parameter to `active` or `inactive`, and the `Content-Type` header to * `application/octet-stream`. If successful, the API call returns the * following HTTP status code: `204 No Content` * * @param name Required. Name of the developer. Use the following structure in your request: `organizations/{org}/developers/{developer_id}` */ async organizationsDevelopersSetDeveloperStatus(name: string, opts: OrganizationsDevelopersSetDeveloperStatusOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.action !== undefined) { url.searchParams.append("action", String(opts.action)); } const data = await request(url.href, { client: this.#client, method: "POST", }); return data as GoogleProtobufEmpty; } /** * Creates a subscription to an API product. * * @param parent Required. Email address of the developer that is purchasing a subscription to the API product. Use the following structure in your request: `organizations/{org}/developers/{developer_email}` */ async organizationsDevelopersSubscriptionsCreate(parent: string, req: GoogleCloudApigeeV1DeveloperSubscription): Promise { req = serializeGoogleCloudApigeeV1DeveloperSubscription(req); const url = new URL(`${this.#baseUrl}v1/${ parent }/subscriptions`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1DeveloperSubscription(data); } /** * Expires an API product subscription immediately. * * @param name Required. Name of the API product subscription. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/subscriptions/{subscription}` */ async organizationsDevelopersSubscriptionsExpire(name: string, req: GoogleCloudApigeeV1ExpireDeveloperSubscriptionRequest): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }:expire`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1DeveloperSubscription(data); } /** * Gets details for an API product subscription. * * @param name Required. Name of the API product subscription. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/subscriptions/{subscription}` */ async organizationsDevelopersSubscriptionsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1DeveloperSubscription(data); } /** * Lists all API product subscriptions for a developer. * * @param parent Required. Email address of the developer. Use the following structure in your request: `organizations/{org}/developers/{developer_email}` */ async organizationsDevelopersSubscriptionsList(parent: string, opts: OrganizationsDevelopersSubscriptionsListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/subscriptions`); if (opts.count !== undefined) { url.searchParams.append("count", String(opts.count)); } if (opts.startKey !== undefined) { url.searchParams.append("startKey", String(opts.startKey)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListDeveloperSubscriptionsResponse(data); } /** * Updates a developer. This API replaces the existing developer details with * those specified in the request. Include or exclude any existing details * that you want to retain or delete, respectively. The custom attribute limit * is 18. **Note**: OAuth access tokens and Key Management Service (KMS) * entities (apps, developers, and API products) are cached for 180 seconds * (current default). Any custom attributes associated with these entities are * cached for at least 180 seconds after the entity is accessed at runtime. * Therefore, an `ExpiresIn` element on the OAuthV2 policy won't be able to * expire an access token in less than 180 seconds. * * @param name Required. Email address of the developer. Use the following structure in your request: `organizations/{org}/developers/{developer_email}` */ async organizationsDevelopersUpdate(name: string, req: GoogleCloudApigeeV1Developer): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PUT", body, }); return data as GoogleCloudApigeeV1Developer; } /** * Updates the monetization configuration for the developer. * * @param name Required. Monetization configuration for the developer. Use the following structure in your request: `organizations/{org}/developers/{developer}/monetizationConfig` */ async organizationsDevelopersUpdateMonetizationConfig(name: string, req: GoogleCloudApigeeV1DeveloperMonetizationConfig): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PUT", body, }); return data as GoogleCloudApigeeV1DeveloperMonetizationConfig; } /** * Creates an endpoint attachment. **Note:** Not supported for Apigee hybrid. * * @param parent Required. Organization the endpoint attachment will be created in. */ async organizationsEndpointAttachmentsCreate(parent: string, req: GoogleCloudApigeeV1EndpointAttachment, opts: OrganizationsEndpointAttachmentsCreateOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/endpointAttachments`); if (opts.endpointAttachmentId !== undefined) { url.searchParams.append("endpointAttachmentId", String(opts.endpointAttachmentId)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleLongrunningOperation; } /** * Deletes an endpoint attachment. * * @param name Required. Name of the endpoint attachment. Use the following structure in your request: `organizations/{org}/endpointAttachments/{endpoint_attachment}` */ async organizationsEndpointAttachmentsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleLongrunningOperation; } /** * Gets the endpoint attachment. * * @param name Required. Name of the endpoint attachment. Use the following structure in your request: `organizations/{org}/endpointAttachments/{endpoint_attachment}` */ async organizationsEndpointAttachmentsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1EndpointAttachment; } /** * Lists the endpoint attachments in an organization. * * @param parent Required. Name of the organization for which to list endpoint attachments. Use the following structure in your request: `organizations/{org}` */ async organizationsEndpointAttachmentsList(parent: string, opts: OrganizationsEndpointAttachmentsListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/endpointAttachments`); if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListEndpointAttachmentsResponse; } /** * Creates a new attachment of an environment to an environment group. * * @param parent Required. EnvironmentGroup under which to create the attachment in the following format: `organizations/{org}/envgroups/{envgroup}`. */ async organizationsEnvgroupsAttachmentsCreate(parent: string, req: GoogleCloudApigeeV1EnvironmentGroupAttachment): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/attachments`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleLongrunningOperation; } /** * Deletes an environment group attachment. * * @param name Required. Name of the environment group attachment to delete in the following format: `organizations/{org}/envgroups/{envgroup}/attachments/{attachment}`. */ async organizationsEnvgroupsAttachmentsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleLongrunningOperation; } /** * Gets an environment group attachment. * * @param name Required. Name of the environment group attachment in the following format: `organizations/{org}/envgroups/{envgroup}/attachments/{attachment}` */ async organizationsEnvgroupsAttachmentsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1EnvironmentGroupAttachment; } /** * Lists all attachments of an environment group. * * @param parent Required. Name of the environment group in the following format: `organizations/{org}/envgroups/{envgroup}`. */ async organizationsEnvgroupsAttachmentsList(parent: string, opts: OrganizationsEnvgroupsAttachmentsListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/attachments`); if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListEnvironmentGroupAttachmentsResponse; } /** * Creates a new environment group. * * @param parent Required. Name of the organization in which to create the environment group in the following format: `organizations/{org}`. */ async organizationsEnvgroupsCreate(parent: string, req: GoogleCloudApigeeV1EnvironmentGroup, opts: OrganizationsEnvgroupsCreateOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/envgroups`); if (opts.name !== undefined) { url.searchParams.append("name", String(opts.name)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleLongrunningOperation; } /** * Deletes an environment group. * * @param name Required. Name of the environment group in the following format: `organizations/{org}/envgroups/{envgroup}`. */ async organizationsEnvgroupsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleLongrunningOperation; } /** * Gets an environment group. * * @param name Required. Name of the environment group in the following format: `organizations/{org}/envgroups/{envgroup}`. */ async organizationsEnvgroupsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1EnvironmentGroup; } /** * Gets the deployed ingress configuration for an environment group. * * @param name Required. Name of the deployed configuration for the environment group in the following format: 'organizations/{org}/envgroups/{envgroup}/deployedIngressConfig'. */ async organizationsEnvgroupsGetDeployedIngressConfig(name: string, opts: OrganizationsEnvgroupsGetDeployedIngressConfigOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.view !== undefined) { url.searchParams.append("view", String(opts.view)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1EnvironmentGroupConfig(data); } /** * Lists all environment groups. * * @param parent Required. Name of the organization for which to list environment groups in the following format: `organizations/{org}`. */ async organizationsEnvgroupsList(parent: string, opts: OrganizationsEnvgroupsListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/envgroups`); if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListEnvironmentGroupsResponse; } /** * Updates an environment group. * * @param name Required. Name of the environment group to update in the format: `organizations/{org}/envgroups/{envgroup}. */ async organizationsEnvgroupsPatch(name: string, req: GoogleCloudApigeeV1EnvironmentGroup, opts: OrganizationsEnvgroupsPatchOptions = {}): Promise { opts = serializeOrganizationsEnvgroupsPatchOptions(opts); const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.updateMask !== undefined) { url.searchParams.append("updateMask", String(opts.updateMask)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PATCH", body, }); return data as GoogleLongrunningOperation; } /** * Updates an add-on enablement status of an environment. * * @param name Required. Name of the add-ons config. Must be in the format of `/organizations/{org}/environments/{env}/addonsConfig` */ async organizationsEnvironmentsAddonsConfigSetAddonEnablement(name: string, req: GoogleCloudApigeeV1SetAddonEnablementRequest): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }:setAddonEnablement`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleLongrunningOperation; } /** * Gets a list of metrics and dimensions that can be used to create analytics * queries and reports. Each schema element contains the name of the field, * its associated type, and a flag indicating whether it is a standard or * custom field. * * @param name Required. Path to the schema. Use the following structure in your request: `organizations/{org}/environments/{env}/analytics/admin/schemav2`. */ async organizationsEnvironmentsAnalyticsAdminGetSchemav2(name: string, opts: OrganizationsEnvironmentsAnalyticsAdminGetSchemav2Options = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.disableCache !== undefined) { url.searchParams.append("disableCache", String(opts.disableCache)); } if (opts.type !== undefined) { url.searchParams.append("type", String(opts.type)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1Schema; } /** * Submit a data export job to be processed in the background. If the request * is successful, the API returns a 201 status, a URI that can be used to * retrieve the status of the export job, and the `state` value of "enqueued". * * @param parent Required. Names of the parent organization and environment. Must be of the form `organizations/{org}/environments/{env}`. */ async organizationsEnvironmentsAnalyticsExportsCreate(parent: string, req: GoogleCloudApigeeV1ExportRequest): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/analytics/exports`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1Export; } /** * Gets the details and status of an analytics export job. If the export job * is still in progress, its `state` is set to "running". After the export job * has completed successfully, its `state` is set to "completed". If the * export job fails, its `state` is set to `failed`. * * @param name Required. Resource name of the export to get. */ async organizationsEnvironmentsAnalyticsExportsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1Export; } /** * Lists the details and status of all analytics export jobs belonging to the * parent organization and environment. * * @param parent Required. Names of the parent organization and environment. Must be of the form `organizations/{org}/environments/{env}`. */ async organizationsEnvironmentsAnalyticsExportsList(parent: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/analytics/exports`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListExportsResponse; } /** * Lists all deployments of an API proxy in an environment. * * @param parent Required. Name representing an API proxy in an environment in the following format: `organizations/{org}/environments/{env}/apis/{api}` */ async organizationsEnvironmentsApisDeploymentsList(parent: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/deployments`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListDeploymentsResponse(data); } /** * Creates a debug session for a deployed API Proxy revision. * * @param parent Required. The resource name of the API Proxy revision deployment for which to create the DebugSession. Must be of the form `organizations/{organization}/environments/{environment}/apis/{api}/revisions/{revision}`. */ async organizationsEnvironmentsApisRevisionsDebugsessionsCreate(parent: string, req: GoogleCloudApigeeV1DebugSession, opts: OrganizationsEnvironmentsApisRevisionsDebugsessionsCreateOptions = {}): Promise { req = serializeGoogleCloudApigeeV1DebugSession(req); opts = serializeOrganizationsEnvironmentsApisRevisionsDebugsessionsCreateOptions(opts); const url = new URL(`${this.#baseUrl}v1/${ parent }/debugsessions`); if (opts.timeout !== undefined) { url.searchParams.append("timeout", String(opts.timeout)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1DebugSession(data); } /** * Gets the debug data from a transaction. * * @param name Required. The name of the debug session transaction. Must be of the form: `organizations/{organization}/environments/{environment}/apis/{api}/revisions/{revision}/debugsessions/{session}/data/{transaction}`. */ async organizationsEnvironmentsApisRevisionsDebugsessionsDataGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1DebugSessionTransaction; } /** * Deletes the data from a debug session. This does not cancel the debug * session or prevent further data from being collected if the session is * still active in runtime pods. * * @param name Required. The name of the debug session to delete. Must be of the form: `organizations/{organization}/environments/{environment}/apis/{api}/revisions/{revision}/debugsessions/{debugsession}`. */ async organizationsEnvironmentsApisRevisionsDebugsessionsDeleteData(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }/data`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleProtobufEmpty; } /** * Retrieves a debug session. * * @param name Required. The name of the debug session to retrieve. Must be of the form: `organizations/{organization}/environments/{environment}/apis/{api}/revisions/{revision}/debugsessions/{session}`. */ async organizationsEnvironmentsApisRevisionsDebugsessionsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1DebugSession(data); } /** * Lists debug sessions that are currently active in the given API Proxy * revision. * * @param parent Required. The name of the API Proxy revision deployment for which to list debug sessions. Must be of the form: `organizations/{organization}/environments/{environment}/apis/{api}/revisions/{revision}`. */ async organizationsEnvironmentsApisRevisionsDebugsessionsList(parent: string, opts: OrganizationsEnvironmentsApisRevisionsDebugsessionsListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/debugsessions`); if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListDebugSessionsResponse(data); } /** * Deploys a revision of an API proxy. If another revision of the same API * proxy revision is currently deployed, set the `override` parameter to * `true` to have this revision replace the currently deployed revision. You * cannot invoke an API proxy until it has been deployed to an environment. * After you deploy an API proxy revision, you cannot edit it. To edit the API * proxy, you must create and deploy a new revision. For a request path * `organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}/deployments`, * two permissions are required: * `apigee.deployments.create` on the resource * `organizations/{org}/environments/{env}` * `apigee.proxyrevisions.deploy` * on the resource `organizations/{org}/apis/{api}/revisions/{rev}` * * @param name Required. Name of the API proxy revision deployment in the following format: `organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}` */ async organizationsEnvironmentsApisRevisionsDeploy(name: string, opts: OrganizationsEnvironmentsApisRevisionsDeployOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }/deployments`); if (opts.override !== undefined) { url.searchParams.append("override", String(opts.override)); } if (opts.sequencedRollout !== undefined) { url.searchParams.append("sequencedRollout", String(opts.sequencedRollout)); } if (opts.serviceAccount !== undefined) { url.searchParams.append("serviceAccount", String(opts.serviceAccount)); } const data = await request(url.href, { client: this.#client, method: "POST", }); return deserializeGoogleCloudApigeeV1Deployment(data); } /** * Generates a report for a dry run analysis of a DeployApiProxy request * without committing the deployment. In addition to the standard validations * performed when adding deployments, additional analysis will be done to * detect possible traffic routing changes that would result from this * deployment being created. Any potential routing conflicts or unsafe changes * will be reported in the response. This routing analysis is not performed * for a non-dry-run DeployApiProxy request. For a request path * `organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}/deployments:generateDeployChangeReport`, * two permissions are required: * `apigee.deployments.create` on the resource * `organizations/{org}/environments/{env}` * `apigee.proxyrevisions.deploy` * on the resource `organizations/{org}/apis/{api}/revisions/{rev}` * * @param name Name of the API proxy revision deployment in the following format: `organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}` */ async organizationsEnvironmentsApisRevisionsDeploymentsGenerateDeployChangeReport(name: string, opts: OrganizationsEnvironmentsApisRevisionsDeploymentsGenerateDeployChangeReportOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }/deployments:generateDeployChangeReport`); if (opts.override !== undefined) { url.searchParams.append("override", String(opts.override)); } const data = await request(url.href, { client: this.#client, method: "POST", }); return data as GoogleCloudApigeeV1DeploymentChangeReport; } /** * Generates a report for a dry run analysis of an UndeployApiProxy request * without committing the undeploy. In addition to the standard validations * performed when removing deployments, additional analysis will be done to * detect possible traffic routing changes that would result from this * deployment being removed. Any potential routing conflicts or unsafe changes * will be reported in the response. This routing analysis is not performed * for a non-dry-run UndeployApiProxy request. For a request path * `organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}/deployments:generateUndeployChangeReport`, * two permissions are required: * `apigee.deployments.delete` on the resource * `organizations/{org}/environments/{env}` * `apigee.proxyrevisions.undeploy` * on the resource `organizations/{org}/apis/{api}/revisions/{rev}` * * @param name Name of the API proxy revision deployment in the following format: `organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}` */ async organizationsEnvironmentsApisRevisionsDeploymentsGenerateUndeployChangeReport(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }/deployments:generateUndeployChangeReport`); const data = await request(url.href, { client: this.#client, method: "POST", }); return data as GoogleCloudApigeeV1DeploymentChangeReport; } /** * Gets the deployment of an API proxy revision and actual state reported by * runtime pods. * * @param name Required. Name representing an API proxy revision in an environment in the following format: `organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}` */ async organizationsEnvironmentsApisRevisionsGetDeployments(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }/deployments`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1Deployment(data); } /** * Undeploys an API proxy revision from an environment. For a request path * `organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}/deployments`, * two permissions are required: * `apigee.deployments.delete` on the resource * `organizations/{org}/environments/{env}` * `apigee.proxyrevisions.undeploy` * on the resource `organizations/{org}/apis/{api}/revisions/{rev}` * * @param name Required. Name of the API proxy revision deployment in the following format: `organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}` */ async organizationsEnvironmentsApisRevisionsUndeploy(name: string, opts: OrganizationsEnvironmentsApisRevisionsUndeployOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }/deployments`); if (opts.sequencedRollout !== undefined) { url.searchParams.append("sequencedRollout", String(opts.sequencedRollout)); } const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleProtobufEmpty; } /** * Creates a new ArchiveDeployment. * * @param parent Required. The Environment this Archive Deployment will be created in. */ async organizationsEnvironmentsArchiveDeploymentsCreate(parent: string, req: GoogleCloudApigeeV1ArchiveDeployment): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/archiveDeployments`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleLongrunningOperation; } /** * Deletes an archive deployment. * * @param name Required. Name of the Archive Deployment in the following format: `organizations/{org}/environments/{env}/archiveDeployments/{id}`. */ async organizationsEnvironmentsArchiveDeploymentsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleProtobufEmpty; } /** * Generates a signed URL for downloading the original zip file used to * create an Archive Deployment. The URL is only valid for a limited period * and should be used within minutes after generation. Each call returns a new * upload URL. * * @param name Required. The name of the Archive Deployment you want to download. */ async organizationsEnvironmentsArchiveDeploymentsGenerateDownloadUrl(name: string, req: GoogleCloudApigeeV1GenerateDownloadUrlRequest): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }:generateDownloadUrl`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1GenerateDownloadUrlResponse; } /** * Generates a signed URL for uploading an Archive zip file to Google Cloud * Storage. Once the upload is complete, the signed URL should be passed to * CreateArchiveDeployment. When uploading to the generated signed URL, please * follow these restrictions: * Source file type should be a zip file. * * Source file size should not exceed 1GB limit. * No credentials should be * attached - the signed URLs provide access to the target bucket using * internal service identity; if credentials were attached, the identity from * the credentials would be used, but that identity does not have permissions * to upload files to the URL. When making a HTTP PUT request, these two * headers need to be specified: * `content-type: application/zip` * * `x-goog-content-length-range: 0,1073741824` And this header SHOULD NOT be * specified: * `Authorization: Bearer YOUR_TOKEN` * * @param parent Required. The organization and environment to upload to. */ async organizationsEnvironmentsArchiveDeploymentsGenerateUploadUrl(parent: string, req: GoogleCloudApigeeV1GenerateUploadUrlRequest): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/archiveDeployments:generateUploadUrl`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1GenerateUploadUrlResponse; } /** * Gets the specified ArchiveDeployment. * * @param name Required. Name of the Archive Deployment in the following format: `organizations/{org}/environments/{env}/archiveDeployments/{id}`. */ async organizationsEnvironmentsArchiveDeploymentsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ArchiveDeployment; } /** * Lists the ArchiveDeployments in the specified Environment. * * @param parent Required. Name of the Environment for which to list Archive Deployments in the format: `organizations/{org}/environments/{env}`. */ async organizationsEnvironmentsArchiveDeploymentsList(parent: string, opts: OrganizationsEnvironmentsArchiveDeploymentsListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/archiveDeployments`); if (opts.filter !== undefined) { url.searchParams.append("filter", String(opts.filter)); } if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListArchiveDeploymentsResponse; } /** * Updates an existing ArchiveDeployment. Labels can modified but most of the * other fields are not modifiable. * * @param name Name of the Archive Deployment in the following format: `organizations/{org}/environments/{env}/archiveDeployments/{id}`. */ async organizationsEnvironmentsArchiveDeploymentsPatch(name: string, req: GoogleCloudApigeeV1ArchiveDeployment, opts: OrganizationsEnvironmentsArchiveDeploymentsPatchOptions = {}): Promise { opts = serializeOrganizationsEnvironmentsArchiveDeploymentsPatchOptions(opts); const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.updateMask !== undefined) { url.searchParams.append("updateMask", String(opts.updateMask)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PATCH", body, }); return data as GoogleCloudApigeeV1ArchiveDeployment; } /** * Deletes a cache. * * @param name Required. Cache resource name of the form: `organizations/{organization_id}/environments/{environment_id}/caches/{cache_id}` */ async organizationsEnvironmentsCachesDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleProtobufEmpty; } /** * Creates an environment in an organization. * * @param parent Required. Name of the organization in which the environment will be created. Use the following structure in your request: `organizations/{org}` */ async organizationsEnvironmentsCreate(parent: string, req: GoogleCloudApigeeV1Environment, opts: OrganizationsEnvironmentsCreateOptions = {}): Promise { req = serializeGoogleCloudApigeeV1Environment(req); const url = new URL(`${this.#baseUrl}v1/${ parent }/environments`); if (opts.name !== undefined) { url.searchParams.append("name", String(opts.name)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleLongrunningOperation; } /** * Deletes an environment from an organization. **Warning: You must delete * all key value maps and key value entries before you delete an * environment.** Otherwise, if you re-create the environment the key value * map entry operations will encounter encryption/decryption discrepancies. * * @param name Required. Name of the environment. Use the following structure in your request: `organizations/{org}/environments/{env}` */ async organizationsEnvironmentsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleLongrunningOperation; } /** * Gets a particular deployment of Api proxy or a shared flow in an * environment * * @param name Required. Name of the api proxy or the shared flow deployment. Use the following structure in your request: `organizations/{org}/environments/{env}/deployments/{deployment}` */ async organizationsEnvironmentsDeploymentsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1Deployment(data); } /** * Gets the IAM policy on a deployment. For more information, see [Manage * users, roles, and permissions using the * API](https://cloud.google.com/apigee/docs/api-platform/system-administration/manage-users-roles). * You must have the `apigee.deployments.getIamPolicy` permission to call this * API. * * @param resource REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field. */ async organizationsEnvironmentsDeploymentsGetIamPolicy(resource: string, opts: OrganizationsEnvironmentsDeploymentsGetIamPolicyOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ resource }:getIamPolicy`); if (opts["options.requestedPolicyVersion"] !== undefined) { url.searchParams.append("options.requestedPolicyVersion", String(opts["options.requestedPolicyVersion"])); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleIamV1Policy(data); } /** * Lists all deployments of API proxies or shared flows in an environment. * * @param parent Required. Name of the environment for which to return deployment information in the following format: `organizations/{org}/environments/{env}` */ async organizationsEnvironmentsDeploymentsList(parent: string, opts: OrganizationsEnvironmentsDeploymentsListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/deployments`); if (opts.sharedFlows !== undefined) { url.searchParams.append("sharedFlows", String(opts.sharedFlows)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListDeploymentsResponse(data); } /** * Sets the IAM policy on a deployment, if the policy already exists it will * be replaced. For more information, see [Manage users, roles, and * permissions using the * API](https://cloud.google.com/apigee/docs/api-platform/system-administration/manage-users-roles). * You must have the `apigee.deployments.setIamPolicy` permission to call this * API. * * @param resource REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field. */ async organizationsEnvironmentsDeploymentsSetIamPolicy(resource: string, req: GoogleIamV1SetIamPolicyRequest): Promise { req = serializeGoogleIamV1SetIamPolicyRequest(req); const url = new URL(`${this.#baseUrl}v1/${ resource }:setIamPolicy`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleIamV1Policy(data); } /** * Tests the permissions of a user on a deployment, and returns a subset of * permissions that the user has on the deployment. If the deployment does not * exist, an empty permission set is returned (a NOT_FOUND error is not * returned). * * @param resource REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field. */ async organizationsEnvironmentsDeploymentsTestIamPermissions(resource: string, req: GoogleIamV1TestIamPermissionsRequest): Promise { const url = new URL(`${this.#baseUrl}v1/${ resource }:testIamPermissions`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleIamV1TestIamPermissionsResponse; } /** * Attaches a shared flow to a flow hook. * * @param name Required. Name of the flow hook to which the shared flow should be attached in the following format: `organizations/{org}/environments/{env}/flowhooks/{flowhook}` */ async organizationsEnvironmentsFlowhooksAttachSharedFlowToFlowHook(name: string, req: GoogleCloudApigeeV1FlowHook): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PUT", body, }); return data as GoogleCloudApigeeV1FlowHook; } /** * Detaches a shared flow from a flow hook. * * @param name Required. Name of the flow hook to detach in the following format: `organizations/{org}/environments/{env}/flowhooks/{flowhook}` */ async organizationsEnvironmentsFlowhooksDetachSharedFlowFromFlowHook(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleCloudApigeeV1FlowHook; } /** * Returns the name of the shared flow attached to the specified flow hook. * If there's no shared flow attached to the flow hook, the API does not * return an error; it simply does not return a name in the response. * * @param name Required. Name of the flow hook in the following format: `organizations/{org}/environments/{env}/flowhooks/{flowhook}` */ async organizationsEnvironmentsFlowhooksGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1FlowHook; } /** * Gets environment details. * * @param name Required. Name of the environment. Use the following structure in your request: `organizations/{org}/environments/{env}` */ async organizationsEnvironmentsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1Environment(data); } /** * Gets the add-ons config of an environment. * * @param name Required. Name of the add-ons config. Must be in the format of `/organizations/{org}/environments/{env}/addonsConfig` */ async organizationsEnvironmentsGetAddonsConfig(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1AddonsConfig; } /** * Gets the API Security runtime configuration for an environment. This named * ApiSecurityRuntimeConfig to prevent conflicts with ApiSecurityConfig from * addon config. * * @param name Required. Name of the environment API Security Runtime configuration resource. Use the following structure in your request: `organizations/{org}/environments/{env}/apiSecurityRuntimeConfig` */ async organizationsEnvironmentsGetApiSecurityRuntimeConfig(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ApiSecurityRuntimeConfig(data); } /** * Gets the debug mask singleton resource for an environment. * * @param name Required. Name of the debug mask. Use the following structure in your request: `organizations/{org}/environments/{env}/debugmask`. */ async organizationsEnvironmentsGetDebugmask(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1DebugMask; } /** * Gets the deployed configuration for an environment. * * @param name Required. Name of the environment deployed configuration resource. Use the following structure in your request: `organizations/{org}/environments/{env}/deployedConfig` */ async organizationsEnvironmentsGetDeployedConfig(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1EnvironmentConfig(data); } /** * Gets the IAM policy on an environment. For more information, see [Manage * users, roles, and permissions using the * API](https://cloud.google.com/apigee/docs/api-platform/system-administration/manage-users-roles). * You must have the `apigee.environments.getIamPolicy` permission to call * this API. * * @param resource REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field. */ async organizationsEnvironmentsGetIamPolicy(resource: string, opts: OrganizationsEnvironmentsGetIamPolicyOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ resource }:getIamPolicy`); if (opts["options.requestedPolicyVersion"] !== undefined) { url.searchParams.append("options.requestedPolicyVersion", String(opts["options.requestedPolicyVersion"])); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleIamV1Policy(data); } /** * GetSecurityActionConfig returns the current SecurityActions configuration. * * @param name Required. The name of the SecurityActionsConfig to retrieve. This will always be: `organizations/{org}/environments/{env}/security_actions_config` */ async organizationsEnvironmentsGetSecurityActionsConfig(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1SecurityActionsConfig; } /** * Get distributed trace configuration in an environment. * * @param name Required. Name of the trace configuration. Use the following structure in your request: "organizations/*/environments/*/traceConfig". */ async organizationsEnvironmentsGetTraceConfig(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1TraceConfig; } /** * Creates an alias from a key/certificate pair. The structure of the request * is controlled by the `format` query parameter: - `keycertfile` - Separate * PEM-encoded key and certificate files are uploaded. Set `Content-Type: * multipart/form-data` and include the `keyFile`, `certFile`, and `password` * (if keys are encrypted) fields in the request body. If uploading to a * truststore, omit `keyFile`. - `pkcs12` - A PKCS12 file is uploaded. Set * `Content-Type: multipart/form-data`, provide the file in the `file` field, * and include the `password` field if the file is encrypted in the request * body. - `selfsignedcert` - A new private key and certificate are generated. * Set `Content-Type: application/json` and include CertificateGenerationSpec * in the request body. * * @param parent Required. Name of the keystore. Use the following format in your request: `organizations/{org}/environments/{env}/keystores/{keystore}`. */ async organizationsEnvironmentsKeystoresAliasesCreate(parent: string, req: GoogleApiHttpBody, opts: OrganizationsEnvironmentsKeystoresAliasesCreateOptions = {}): Promise { req = serializeGoogleApiHttpBody(req); const url = new URL(`${this.#baseUrl}v1/${ parent }/aliases`); if (opts._password !== undefined) { url.searchParams.append("_password", String(opts._password)); } if (opts.alias !== undefined) { url.searchParams.append("alias", String(opts.alias)); } if (opts.format !== undefined) { url.searchParams.append("format", String(opts.format)); } if (opts.ignoreExpiryValidation !== undefined) { url.searchParams.append("ignoreExpiryValidation", String(opts.ignoreExpiryValidation)); } if (opts.ignoreNewlineValidation !== undefined) { url.searchParams.append("ignoreNewlineValidation", String(opts.ignoreNewlineValidation)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1Alias(data); } /** * Generates a PKCS #10 Certificate Signing Request for the private key in an * alias. * * @param name Required. Name of the alias. Use the following format in your request: `organizations/{org}/environments/{env}/keystores/{keystore}/aliases/{alias}`. */ async organizationsEnvironmentsKeystoresAliasesCsr(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }/csr`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleApiHttpBody(data); } /** * Deletes an alias. * * @param name Required. Name of the alias. Use the following format in your request: `organizations/{org}/environments/{env}/keystores/{keystore}/aliases/{alias}`. */ async organizationsEnvironmentsKeystoresAliasesDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return deserializeGoogleCloudApigeeV1Alias(data); } /** * Gets an alias. * * @param name Required. Name of the alias. Use the following format in your request: `organizations/{org}/environments/{env}/keystores/{keystore}/aliases/{alias}`. */ async organizationsEnvironmentsKeystoresAliasesGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1Alias(data); } /** * Gets the certificate from an alias in PEM-encoded form. * * @param name Required. Name of the alias. Use the following format in your request: `organizations/{org}/environments/{env}/keystores/{keystore}/aliases/{alias}`. */ async organizationsEnvironmentsKeystoresAliasesGetCertificate(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }/certificate`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleApiHttpBody(data); } /** * Updates the certificate in an alias. * * @param name Required. Name of the alias. Use the following format in your request: `organizations/{org}/environments/{env}/keystores/{keystore}/aliases/{alias}` */ async organizationsEnvironmentsKeystoresAliasesUpdate(name: string, req: GoogleApiHttpBody, opts: OrganizationsEnvironmentsKeystoresAliasesUpdateOptions = {}): Promise { req = serializeGoogleApiHttpBody(req); const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.ignoreExpiryValidation !== undefined) { url.searchParams.append("ignoreExpiryValidation", String(opts.ignoreExpiryValidation)); } if (opts.ignoreNewlineValidation !== undefined) { url.searchParams.append("ignoreNewlineValidation", String(opts.ignoreNewlineValidation)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PUT", body, }); return deserializeGoogleCloudApigeeV1Alias(data); } /** * Creates a keystore or truststore. - Keystore: Contains certificates and * their associated keys. - Truststore: Contains trusted certificates used to * validate a server's certificate. These certificates are typically * self-signed certificates or certificates that are not signed by a trusted * CA. * * @param parent Required. Name of the environment in which to create the keystore. Use the following format in your request: `organizations/{org}/environments/{env}` */ async organizationsEnvironmentsKeystoresCreate(parent: string, req: GoogleCloudApigeeV1Keystore, opts: OrganizationsEnvironmentsKeystoresCreateOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/keystores`); if (opts.name !== undefined) { url.searchParams.append("name", String(opts.name)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1Keystore; } /** * Deletes a keystore or truststore. * * @param name Required. Name of the keystore. Use the following format in your request: `organizations/{org}/environments/{env}/keystores/{keystore}` */ async organizationsEnvironmentsKeystoresDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleCloudApigeeV1Keystore; } /** * Gets a keystore or truststore. * * @param name Required. Name of the keystore. Use the following format in your request: `organizations/{org}/environments/{env}/keystores/{keystore}`. */ async organizationsEnvironmentsKeystoresGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1Keystore; } /** * Creates a key value map in an environment. * * @param parent Required. Name of the environment in which to create the key value map. Use the following structure in your request: `organizations/{org}/environments/{env}` */ async organizationsEnvironmentsKeyvaluemapsCreate(parent: string, req: GoogleCloudApigeeV1KeyValueMap): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/keyvaluemaps`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1KeyValueMap; } /** * Deletes a key value map from an environment. * * @param name Required. Name of the key value map. Use the following structure in your request: `organizations/{org}/environments/{env}/keyvaluemaps/{keyvaluemap}` */ async organizationsEnvironmentsKeyvaluemapsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleCloudApigeeV1KeyValueMap; } /** * Creates key value entries in a key value map scoped to an organization, * environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and * higher. * * @param parent Required. Scope as indicated by the URI in which to create the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`. */ async organizationsEnvironmentsKeyvaluemapsEntriesCreate(parent: string, req: GoogleCloudApigeeV1KeyValueEntry): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/entries`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1KeyValueEntry; } /** * Deletes a key value entry from a key value map scoped to an organization, * environment, or API proxy. **Notes:** * After you delete the key value * entry, the policy consuming the entry will continue to function with its * cached values for a few minutes. This is expected behavior. * Supported for * Apigee hybrid 1.8.x and higher. * * @param name Required. Scope as indicated by the URI in which to delete the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}/entries/{entry}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. */ async organizationsEnvironmentsKeyvaluemapsEntriesDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleCloudApigeeV1KeyValueEntry; } /** * Get the key value entry value for a key value map scoped to an * organization, environment, or API proxy. **Note**: Supported for Apigee * hybrid 1.8.x and higher. * * @param name Required. Scope as indicated by the URI in which to fetch the key value map entry/value. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}/entries/{entry}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. */ async organizationsEnvironmentsKeyvaluemapsEntriesGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1KeyValueEntry; } /** * Lists key value entries for key values maps scoped to an organization, * environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and * higher. * * @param parent Required. Scope as indicated by the URI in which to list key value maps. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`. */ async organizationsEnvironmentsKeyvaluemapsEntriesList(parent: string, opts: OrganizationsEnvironmentsKeyvaluemapsEntriesListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/entries`); if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListKeyValueEntriesResponse; } /** * Update key value entry scoped to an organization, environment, or API * proxy for an existing key. * * @param name Required. Scope as indicated by the URI in which to create the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`. */ async organizationsEnvironmentsKeyvaluemapsEntriesUpdate(name: string, req: GoogleCloudApigeeV1KeyValueEntry): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PUT", body, }); return data as GoogleCloudApigeeV1KeyValueEntry; } /** * Updates properties for an Apigee environment with patch semantics using a * field mask. **Note:** Not supported for Apigee hybrid. * * @param name Required. Name of the environment. Use the following structure in your request: `organizations/{org}/environments/{environment}`. */ async organizationsEnvironmentsModifyEnvironment(name: string, req: GoogleCloudApigeeV1Environment, opts: OrganizationsEnvironmentsModifyEnvironmentOptions = {}): Promise { req = serializeGoogleCloudApigeeV1Environment(req); opts = serializeOrganizationsEnvironmentsModifyEnvironmentOptions(opts); const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.updateMask !== undefined) { url.searchParams.append("updateMask", String(opts.updateMask)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PATCH", body, }); return data as GoogleLongrunningOperation; } /** * Similar to GetStats except that the response is less verbose. * * @param name Required. Resource name for which the interactive query will be executed. Use the following format in your request: `organizations/{org}/environments/{env}/optimizedStats/{dimensions}` Dimensions let you view metrics in meaningful groupings, such as `apiproxy`, `target_host`. The value of `dimensions` should be a comma-separated list as shown below: `organizations/{org}/environments/{env}/optimizedStats/apiproxy,request_verb` */ async organizationsEnvironmentsOptimizedStatsGet(name: string, opts: OrganizationsEnvironmentsOptimizedStatsGetOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.accuracy !== undefined) { url.searchParams.append("accuracy", String(opts.accuracy)); } if (opts.aggTable !== undefined) { url.searchParams.append("aggTable", String(opts.aggTable)); } if (opts.filter !== undefined) { url.searchParams.append("filter", String(opts.filter)); } if (opts.limit !== undefined) { url.searchParams.append("limit", String(opts.limit)); } if (opts.offset !== undefined) { url.searchParams.append("offset", String(opts.offset)); } if (opts.realtime !== undefined) { url.searchParams.append("realtime", String(opts.realtime)); } if (opts.select !== undefined) { url.searchParams.append("select", String(opts.select)); } if (opts.sonar !== undefined) { url.searchParams.append("sonar", String(opts.sonar)); } if (opts.sort !== undefined) { url.searchParams.append("sort", String(opts.sort)); } if (opts.sortby !== undefined) { url.searchParams.append("sortby", String(opts.sortby)); } if (opts.timeRange !== undefined) { url.searchParams.append("timeRange", String(opts.timeRange)); } if (opts.timeUnit !== undefined) { url.searchParams.append("timeUnit", String(opts.timeUnit)); } if (opts.topk !== undefined) { url.searchParams.append("topk", String(opts.topk)); } if (opts.tsAscending !== undefined) { url.searchParams.append("tsAscending", String(opts.tsAscending)); } if (opts.tzo !== undefined) { url.searchParams.append("tzo", String(opts.tzo)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1OptimizedStats(data); } /** * Submit a query to be processed in the background. If the submission of the * query succeeds, the API returns a 201 status and an ID that refer to the * query. In addition to the HTTP status 201, the `state` of "enqueued" means * that the request succeeded. * * @param parent Required. The parent resource name. Must be of the form `organizations/{org}/environments/{env}`. */ async organizationsEnvironmentsQueriesCreate(parent: string, req: GoogleCloudApigeeV1Query): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/queries`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1AsyncQuery(data); } /** * Get query status If the query is still in progress, the `state` is set to * "running" After the query has completed successfully, `state` is set to * "completed" * * @param name Required. Name of the asynchronous query to get. Must be of the form `organizations/{org}/environments/{env}/queries/{queryId}`. */ async organizationsEnvironmentsQueriesGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1AsyncQuery(data); } /** * After the query is completed, use this API to retrieve the results. If the * request succeeds, and there is a non-zero result set, the result is * downloaded to the client as a zipped JSON file. The name of the downloaded * file will be: OfflineQueryResult-.zip Example: * `OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip` * * @param name Required. Name of the asynchronous query result to get. Must be of the form `organizations/{org}/environments/{env}/queries/{queryId}/result`. */ async organizationsEnvironmentsQueriesGetResult(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleApiHttpBody(data); } /** * After the query is completed, use this API to retrieve the results. If the * request succeeds, and there is a non-zero result set, the result is sent to * the client as a list of urls to JSON files. * * @param name Required. Name of the asynchronous query result to get. Must be of the form `organizations/{org}/environments/{env}/queries/{queryId}/resulturl`. */ async organizationsEnvironmentsQueriesGetResulturl(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1GetAsyncQueryResultUrlResponse(data); } /** * Return a list of Asynchronous Queries * * @param parent Required. The parent resource name. Must be of the form `organizations/{org}/environments/{env}`. */ async organizationsEnvironmentsQueriesList(parent: string, opts: OrganizationsEnvironmentsQueriesListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/queries`); if (opts.dataset !== undefined) { url.searchParams.append("dataset", String(opts.dataset)); } if (opts.from !== undefined) { url.searchParams.append("from", String(opts.from)); } if (opts.inclQueriesWithoutReport !== undefined) { url.searchParams.append("inclQueriesWithoutReport", String(opts.inclQueriesWithoutReport)); } if (opts.status !== undefined) { url.searchParams.append("status", String(opts.status)); } if (opts.submittedBy !== undefined) { url.searchParams.append("submittedBy", String(opts.submittedBy)); } if (opts.to !== undefined) { url.searchParams.append("to", String(opts.to)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListAsyncQueriesResponse(data); } /** * Creates a Reference in the specified environment. * * @param parent Required. The parent environment name under which the Reference will be created. Must be of the form `organizations/{org}/environments/{env}`. */ async organizationsEnvironmentsReferencesCreate(parent: string, req: GoogleCloudApigeeV1Reference): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/references`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1Reference; } /** * Deletes a Reference from an environment. Returns the deleted Reference * resource. * * @param name Required. The name of the Reference to delete. Must be of the form `organizations/{org}/environments/{env}/references/{ref}`. */ async organizationsEnvironmentsReferencesDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleCloudApigeeV1Reference; } /** * Gets a Reference resource. * * @param name Required. The name of the Reference to get. Must be of the form `organizations/{org}/environments/{env}/references/{ref}`. */ async organizationsEnvironmentsReferencesGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1Reference; } /** * Updates an existing Reference. Note that this operation has PUT semantics; * it will replace the entirety of the existing Reference with the resource in * the request body. * * @param name Required. The name of the Reference to update. Must be of the form `organizations/{org}/environments/{env}/references/{ref}`. */ async organizationsEnvironmentsReferencesUpdate(name: string, req: GoogleCloudApigeeV1Reference): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PUT", body, }); return data as GoogleCloudApigeeV1Reference; } /** * Creates a resource file. Specify the `Content-Type` as * `application/octet-stream` or `multipart/form-data`. For more information * about resource files, see [Resource * files](https://cloud.google.com/apigee/docs/api-platform/develop/resource-files). * * @param parent Required. Name of the environment in which to create the resource file in the following format: `organizations/{org}/environments/{env}`. */ async organizationsEnvironmentsResourcefilesCreate(parent: string, req: GoogleApiHttpBody, opts: OrganizationsEnvironmentsResourcefilesCreateOptions = {}): Promise { req = serializeGoogleApiHttpBody(req); const url = new URL(`${this.#baseUrl}v1/${ parent }/resourcefiles`); if (opts.name !== undefined) { url.searchParams.append("name", String(opts.name)); } if (opts.type !== undefined) { url.searchParams.append("type", String(opts.type)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1ResourceFile; } /** * Deletes a resource file. For more information about resource files, see * [Resource * files](https://cloud.google.com/apigee/docs/api-platform/develop/resource-files). * * @param name Required. ID of the resource file to delete. Must match the regular expression: [a-zA-Z0-9:/\\!@#$%^&{}\[\]()+\-=,.~'` ]{1,255} * @param parent Required. Name of the environment in the following format: `organizations/{org}/environments/{env}`. * @param type Required. Resource file type. {{ resource_file_type }} */ async organizationsEnvironmentsResourcefilesDelete(name: string, parent: string, type: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/resourcefiles/${ type }/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleCloudApigeeV1ResourceFile; } /** * Gets the contents of a resource file. For more information about resource * files, see [Resource * files](https://cloud.google.com/apigee/docs/api-platform/develop/resource-files). * * @param name Required. ID of the resource file. Must match the regular expression: [a-zA-Z0-9:/\\!@#$%^&{}\[\]()+\-=,.~'` ]{1,255} * @param parent Required. Name of the environment in the following format: `organizations/{org}/environments/{env}`. * @param type Required. Resource file type. {{ resource_file_type }} */ async organizationsEnvironmentsResourcefilesGet(name: string, parent: string, type: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/resourcefiles/${ type }/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleApiHttpBody(data); } /** * Lists all resource files, optionally filtering by type. For more * information about resource files, see [Resource * files](https://cloud.google.com/apigee/docs/api-platform/develop/resource-files). * * @param parent Required. Name of the environment in which to list resource files in the following format: `organizations/{org}/environments/{env}`. */ async organizationsEnvironmentsResourcefilesList(parent: string, opts: OrganizationsEnvironmentsResourcefilesListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/resourcefiles`); if (opts.type !== undefined) { url.searchParams.append("type", String(opts.type)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListEnvironmentResourcesResponse; } /** * Lists all resource files, optionally filtering by type. For more * information about resource files, see [Resource * files](https://cloud.google.com/apigee/docs/api-platform/develop/resource-files). * * @param parent Required. Name of the environment in which to list resource files in the following format: `organizations/{org}/environments/{env}`. * @param type Optional. Type of resource files to list. {{ resource_file_type }} */ async organizationsEnvironmentsResourcefilesListEnvironmentResources(parent: string, type: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/resourcefiles/${ type }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListEnvironmentResourcesResponse; } /** * Updates a resource file. Specify the `Content-Type` as * `application/octet-stream` or `multipart/form-data`. For more information * about resource files, see [Resource * files](https://cloud.google.com/apigee/docs/api-platform/develop/resource-files). * * @param name Required. ID of the resource file to update. Must match the regular expression: [a-zA-Z0-9:/\\!@#$%^&{}\[\]()+\-=,.~'` ]{1,255} * @param parent Required. Name of the environment in the following format: `organizations/{org}/environments/{env}`. * @param type Required. Resource file type. {{ resource_file_type }} */ async organizationsEnvironmentsResourcefilesUpdate(name: string, parent: string, type: string, req: GoogleApiHttpBody): Promise { req = serializeGoogleApiHttpBody(req); const url = new URL(`${this.#baseUrl}v1/${ parent }/resourcefiles/${ type }/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PUT", body, }); return data as GoogleCloudApigeeV1ResourceFile; } /** * CreateSecurityAction creates a SecurityAction. * * @param parent Required. The organization and environment that this SecurityAction applies to. Format: organizations/{org}/environments/{env} */ async organizationsEnvironmentsSecurityActionsCreate(parent: string, req: GoogleCloudApigeeV1SecurityAction, opts: OrganizationsEnvironmentsSecurityActionsCreateOptions = {}): Promise { req = serializeGoogleCloudApigeeV1SecurityAction(req); const url = new URL(`${this.#baseUrl}v1/${ parent }/securityActions`); if (opts.securityActionId !== undefined) { url.searchParams.append("securityActionId", String(opts.securityActionId)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1SecurityAction(data); } /** * Disable a SecurityAction. The `state` of the SecurityAction after * disabling is `DISABLED`. `DisableSecurityAction` can be called on * SecurityActions in the state `ENABLED`; SecurityActions in a different * state (including `DISABLED`) return an error. * * @param name Required. The name of the SecurityAction to disable. Format: organizations/{org}/environments/{env}/securityActions/{security_action} */ async organizationsEnvironmentsSecurityActionsDisable(name: string, req: GoogleCloudApigeeV1DisableSecurityActionRequest): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }:disable`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1SecurityAction(data); } /** * Enable a SecurityAction. The `state` of the SecurityAction after enabling * is `ENABLED`. `EnableSecurityAction` can be called on SecurityActions in * the state `DISABLED`; SecurityActions in a different state (including * `ENABLED) return an error. * * @param name Required. The name of the SecurityAction to enable. Format: organizations/{org}/environments/{env}/securityActions/{security_action} */ async organizationsEnvironmentsSecurityActionsEnable(name: string, req: GoogleCloudApigeeV1EnableSecurityActionRequest): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }:enable`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1SecurityAction(data); } /** * Get a SecurityAction by name. * * @param name Required. The fully qualified name of the SecurityAction to retrieve. Format: organizations/{org}/environments/{env}/securityActions/{security_action} */ async organizationsEnvironmentsSecurityActionsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1SecurityAction(data); } /** * Returns a list of SecurityActions. This returns both enabled and disabled * actions. * * @param parent Required. The parent, which owns this collection of SecurityActions. Format: organizations/{org}/environments/{env} */ async organizationsEnvironmentsSecurityActionsList(parent: string, opts: OrganizationsEnvironmentsSecurityActionsListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/securityActions`); if (opts.filter !== undefined) { url.searchParams.append("filter", String(opts.filter)); } if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListSecurityActionsResponse(data); } /** * BatchUpdateSecurityIncident updates multiple existing security incidents. * * @param parent Optional. The parent resource shared by all security incidents being updated. If this is set, the parent field in the UpdateSecurityIncidentRequest messages must either be empty or match this field. */ async organizationsEnvironmentsSecurityIncidentsBatchUpdate(parent: string, req: GoogleCloudApigeeV1BatchUpdateSecurityIncidentsRequest): Promise { req = serializeGoogleCloudApigeeV1BatchUpdateSecurityIncidentsRequest(req); const url = new URL(`${this.#baseUrl}v1/${ parent }/securityIncidents:batchUpdate`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1BatchUpdateSecurityIncidentsResponse; } /** * GetSecurityIncident gets the specified security incident. Returns * NOT_FOUND if security incident is not present for the specified * organization and environment. * * @param name Required. Security incident in the following format: `organizations/{org}/environments/{environment}/securityIncidents/{incident}'. Example: organizations/testOrg/environments/testEnv/securityIncidents/1234-4567-890-111 */ async organizationsEnvironmentsSecurityIncidentsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1SecurityIncident(data); } /** * ListSecurityIncidents lists all the security incident associated with the * environment. * * @param parent Required. For a specific organization, list of all the security incidents. Format: `organizations/{org}/environments/{environment}` */ async organizationsEnvironmentsSecurityIncidentsList(parent: string, opts: OrganizationsEnvironmentsSecurityIncidentsListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/securityIncidents`); if (opts.filter !== undefined) { url.searchParams.append("filter", String(opts.filter)); } if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListSecurityIncidentsResponse(data); } /** * UpdateSecurityIncidents updates an existing security incident. * * @param name Immutable. Name of the security incident resource. Format: organizations/{org}/environments/{environment}/securityIncidents/{incident} Example: organizations/apigee-org/environments/dev/securityIncidents/1234-5678-9101-1111 */ async organizationsEnvironmentsSecurityIncidentsPatch(name: string, req: GoogleCloudApigeeV1SecurityIncident, opts: OrganizationsEnvironmentsSecurityIncidentsPatchOptions = {}): Promise { req = serializeGoogleCloudApigeeV1SecurityIncident(req); opts = serializeOrganizationsEnvironmentsSecurityIncidentsPatchOptions(opts); const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.updateMask !== undefined) { url.searchParams.append("updateMask", String(opts.updateMask)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PATCH", body, }); return deserializeGoogleCloudApigeeV1SecurityIncident(data); } /** * Submit a report request to be processed in the background. If the * submission succeeds, the API returns a 200 status and an ID that refer to * the report request. In addition to the HTTP status 200, the `state` of * "enqueued" means that the request succeeded. * * @param parent Required. The parent resource name. Must be of the form `organizations/{org}/environments/{env}`. */ async organizationsEnvironmentsSecurityReportsCreate(parent: string, req: GoogleCloudApigeeV1SecurityReportQuery): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/securityReports`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1SecurityReport(data); } /** * Get security report status If the query is still in progress, the `state` * is set to "running" After the query has completed successfully, `state` is * set to "completed" * * @param name Required. Name of the security report to get. Must be of the form `organizations/{org}/environments/{env}/securityReports/{reportId}`. */ async organizationsEnvironmentsSecurityReportsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1SecurityReport(data); } /** * After the query is completed, use this API to retrieve the results as * file. If the request succeeds, and there is a non-zero result set, the * result is downloaded to the client as a zipped JSON file. The name of the * downloaded file will be: OfflineQueryResult-.zip Example: * `OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip` * * @param name Required. Name of the security report result to get. Must be of the form `organizations/{org}/environments/{env}/securityReports/{reportId}/result`. */ async organizationsEnvironmentsSecurityReportsGetResult(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleApiHttpBody(data); } /** * After the query is completed, use this API to view the query result when * result size is small. * * @param name Required. Name of the security report result view to get. Must be of the form `organizations/{org}/environments/{env}/securityReports/{reportId}/resultView`. */ async organizationsEnvironmentsSecurityReportsGetResultView(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1SecurityReportResultView(data); } /** * Return a list of Security Reports * * @param parent Required. The parent resource name. Must be of the form `organizations/{org}/environments/{env}`. */ async organizationsEnvironmentsSecurityReportsList(parent: string, opts: OrganizationsEnvironmentsSecurityReportsListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/securityReports`); if (opts.dataset !== undefined) { url.searchParams.append("dataset", String(opts.dataset)); } if (opts.from !== undefined) { url.searchParams.append("from", String(opts.from)); } if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } if (opts.status !== undefined) { url.searchParams.append("status", String(opts.status)); } if (opts.submittedBy !== undefined) { url.searchParams.append("submittedBy", String(opts.submittedBy)); } if (opts.to !== undefined) { url.searchParams.append("to", String(opts.to)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListSecurityReportsResponse(data); } /** * Retrieve security statistics as tabular rows. * * @param orgenv Required. Should be of the form organizations//environments/. */ async organizationsEnvironmentsSecurityStatsQueryTabularStats(orgenv: string, req: GoogleCloudApigeeV1QueryTabularStatsRequest): Promise { req = serializeGoogleCloudApigeeV1QueryTabularStatsRequest(req); const url = new URL(`${this.#baseUrl}v1/${ orgenv }/securityStats:queryTabularStats`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1QueryTabularStatsResponse; } /** * Retrieve security statistics as a collection of time series. * * @param orgenv Required. Should be of the form organizations//environments/. */ async organizationsEnvironmentsSecurityStatsQueryTimeSeriesStats(orgenv: string, req: GoogleCloudApigeeV1QueryTimeSeriesStatsRequest): Promise { req = serializeGoogleCloudApigeeV1QueryTimeSeriesStatsRequest(req); const url = new URL(`${this.#baseUrl}v1/${ orgenv }/securityStats:queryTimeSeriesStats`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1QueryTimeSeriesStatsResponse; } /** * Sets the IAM policy on an environment, if the policy already exists it * will be replaced. For more information, see [Manage users, roles, and * permissions using the * API](https://cloud.google.com/apigee/docs/api-platform/system-administration/manage-users-roles). * You must have the `apigee.environments.setIamPolicy` permission to call * this API. * * @param resource REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field. */ async organizationsEnvironmentsSetIamPolicy(resource: string, req: GoogleIamV1SetIamPolicyRequest): Promise { req = serializeGoogleIamV1SetIamPolicyRequest(req); const url = new URL(`${this.#baseUrl}v1/${ resource }:setIamPolicy`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleIamV1Policy(data); } /** * Lists all deployments of a shared flow in an environment. * * @param parent Required. Name representing a shared flow in an environment in the following format: `organizations/{org}/environments/{env}/sharedflows/{sharedflow}` */ async organizationsEnvironmentsSharedflowsDeploymentsList(parent: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/deployments`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListDeploymentsResponse(data); } /** * Deploys a revision of a shared flow. If another revision of the same * shared flow is currently deployed, set the `override` parameter to `true` * to have this revision replace the currently deployed revision. You cannot * use a shared flow until it has been deployed to an environment. For a * request path * `organizations/{org}/environments/{env}/sharedflows/{sf}/revisions/{rev}/deployments`, * two permissions are required: * `apigee.deployments.create` on the resource * `organizations/{org}/environments/{env}` * * `apigee.sharedflowrevisions.deploy` on the resource * `organizations/{org}/sharedflows/{sf}/revisions/{rev}` * * @param name Required. Name of the shared flow revision to deploy in the following format: `organizations/{org}/environments/{env}/sharedflows/{sharedflow}/revisions/{rev}` */ async organizationsEnvironmentsSharedflowsRevisionsDeploy(name: string, opts: OrganizationsEnvironmentsSharedflowsRevisionsDeployOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }/deployments`); if (opts.override !== undefined) { url.searchParams.append("override", String(opts.override)); } if (opts.serviceAccount !== undefined) { url.searchParams.append("serviceAccount", String(opts.serviceAccount)); } const data = await request(url.href, { client: this.#client, method: "POST", }); return deserializeGoogleCloudApigeeV1Deployment(data); } /** * Gets the deployment of a shared flow revision and actual state reported by * runtime pods. * * @param name Required. Name representing a shared flow in an environment in the following format: `organizations/{org}/environments/{env}/sharedflows/{sharedflow}/revisions/{rev}` */ async organizationsEnvironmentsSharedflowsRevisionsGetDeployments(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }/deployments`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1Deployment(data); } /** * Undeploys a shared flow revision from an environment. For a request path * `organizations/{org}/environments/{env}/sharedflows/{sf}/revisions/{rev}/deployments`, * two permissions are required: * `apigee.deployments.delete` on the resource * `organizations/{org}/environments/{env}` * * `apigee.sharedflowrevisions.undeploy` on the resource * `organizations/{org}/sharedflows/{sf}/revisions/{rev}` * * @param name Required. Name of the shared flow revision to undeploy in the following format: `organizations/{org}/environments/{env}/sharedflows/{sharedflow}/revisions/{rev}` */ async organizationsEnvironmentsSharedflowsRevisionsUndeploy(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }/deployments`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleProtobufEmpty; } /** * Retrieve metrics grouped by dimensions. The types of metrics you can * retrieve include traffic, message counts, API call latency, response size, * and cache hits and counts. Dimensions let you view metrics in meaningful * groups. You can optionally pass dimensions as path parameters to the * `stats` API. If dimensions are not specified, the metrics are computed on * the entire set of data for the given time range. * * @param name Required. Resource name for which the interactive query will be executed. Use the following format in your request: `organizations/{org}/environments/{env}/stats/{dimensions}` Dimensions let you view metrics in meaningful groupings, such as `apiproxy` or `target_host`. The value of dimensions should be a comma-separated list, as shown below: `organizations/{org}/environments/{env}/stats/apiproxy,request_verb` */ async organizationsEnvironmentsStatsGet(name: string, opts: OrganizationsEnvironmentsStatsGetOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.accuracy !== undefined) { url.searchParams.append("accuracy", String(opts.accuracy)); } if (opts.aggTable !== undefined) { url.searchParams.append("aggTable", String(opts.aggTable)); } if (opts.filter !== undefined) { url.searchParams.append("filter", String(opts.filter)); } if (opts.limit !== undefined) { url.searchParams.append("limit", String(opts.limit)); } if (opts.offset !== undefined) { url.searchParams.append("offset", String(opts.offset)); } if (opts.realtime !== undefined) { url.searchParams.append("realtime", String(opts.realtime)); } if (opts.select !== undefined) { url.searchParams.append("select", String(opts.select)); } if (opts.sonar !== undefined) { url.searchParams.append("sonar", String(opts.sonar)); } if (opts.sort !== undefined) { url.searchParams.append("sort", String(opts.sort)); } if (opts.sortby !== undefined) { url.searchParams.append("sortby", String(opts.sortby)); } if (opts.timeRange !== undefined) { url.searchParams.append("timeRange", String(opts.timeRange)); } if (opts.timeUnit !== undefined) { url.searchParams.append("timeUnit", String(opts.timeUnit)); } if (opts.topk !== undefined) { url.searchParams.append("topk", String(opts.topk)); } if (opts.tsAscending !== undefined) { url.searchParams.append("tsAscending", String(opts.tsAscending)); } if (opts.tzo !== undefined) { url.searchParams.append("tzo", String(opts.tzo)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1Stats; } /** * Creates a subscription for the environment's Pub/Sub topic. The server * will assign a random name for this subscription. The "name" and * "push_config" must *not* be specified. * * @param parent Required. Name of the environment. Use the following structure in your request: `organizations/{org}/environments/{env}` */ async organizationsEnvironmentsSubscribe(parent: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }:subscribe`); const data = await request(url.href, { client: this.#client, method: "POST", }); return data as GoogleCloudApigeeV1Subscription; } /** * Creates a TargetServer in the specified environment. * * @param parent Required. The parent environment name under which the TargetServer will be created. Must be of the form `organizations/{org}/environments/{env}`. */ async organizationsEnvironmentsTargetserversCreate(parent: string, req: GoogleCloudApigeeV1TargetServer, opts: OrganizationsEnvironmentsTargetserversCreateOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/targetservers`); if (opts.name !== undefined) { url.searchParams.append("name", String(opts.name)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1TargetServer; } /** * Deletes a TargetServer from an environment. Returns the deleted * TargetServer resource. * * @param name Required. The name of the TargetServer to delete. Must be of the form `organizations/{org}/environments/{env}/targetservers/{target_server_id}`. */ async organizationsEnvironmentsTargetserversDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleCloudApigeeV1TargetServer; } /** * Gets a TargetServer resource. * * @param name Required. The name of the TargetServer to get. Must be of the form `organizations/{org}/environments/{env}/targetservers/{target_server_id}`. */ async organizationsEnvironmentsTargetserversGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1TargetServer; } /** * Updates an existing TargetServer. Note that this operation has PUT * semantics; it will replace the entirety of the existing TargetServer with * the resource in the request body. * * @param name Required. The name of the TargetServer to replace. Must be of the form `organizations/{org}/environments/{env}/targetservers/{target_server_id}`. */ async organizationsEnvironmentsTargetserversUpdate(name: string, req: GoogleCloudApigeeV1TargetServer): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PUT", body, }); return data as GoogleCloudApigeeV1TargetServer; } /** * Tests the permissions of a user on an environment, and returns a subset of * permissions that the user has on the environment. If the environment does * not exist, an empty permission set is returned (a NOT_FOUND error is not * returned). * * @param resource REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field. */ async organizationsEnvironmentsTestIamPermissions(resource: string, req: GoogleIamV1TestIamPermissionsRequest): Promise { const url = new URL(`${this.#baseUrl}v1/${ resource }:testIamPermissions`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleIamV1TestIamPermissionsResponse; } /** * Creates a trace configuration override. The response contains a * system-generated UUID, that can be used to view, update, or delete the * configuration override. Use the List API to view the existing trace * configuration overrides. * * @param parent Required. Parent resource of the trace configuration override. Use the following structure in your request. "organizations/*/environments/*/traceConfig". */ async organizationsEnvironmentsTraceConfigOverridesCreate(parent: string, req: GoogleCloudApigeeV1TraceConfigOverride): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/overrides`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1TraceConfigOverride; } /** * Deletes a distributed trace configuration override. * * @param name Required. Name of the trace configuration override. Use the following structure in your request: "organizations/*/environments/*/traceConfig/overrides/*". */ async organizationsEnvironmentsTraceConfigOverridesDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleProtobufEmpty; } /** * Gets a trace configuration override. * * @param name Required. Name of the trace configuration override. Use the following structure in your request: "organizations/*/environments/*/traceConfig/overrides/*". */ async organizationsEnvironmentsTraceConfigOverridesGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1TraceConfigOverride; } /** * Lists all of the distributed trace configuration overrides in an * environment. * * @param parent Required. Parent resource of the trace configuration override. Use the following structure in your request: "organizations/*/environments/*/traceConfig". */ async organizationsEnvironmentsTraceConfigOverridesList(parent: string, opts: OrganizationsEnvironmentsTraceConfigOverridesListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/overrides`); if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListTraceConfigOverridesResponse; } /** * Updates a distributed trace configuration override. Note that the repeated * fields have replace semantics when included in the field mask and that they * will be overwritten by the value of the fields in the request body. * * @param name Required. Name of the trace configuration override. Use the following structure in your request: "organizations/*/environments/*/traceConfig/overrides/*". */ async organizationsEnvironmentsTraceConfigOverridesPatch(name: string, req: GoogleCloudApigeeV1TraceConfigOverride, opts: OrganizationsEnvironmentsTraceConfigOverridesPatchOptions = {}): Promise { opts = serializeOrganizationsEnvironmentsTraceConfigOverridesPatchOptions(opts); const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.updateMask !== undefined) { url.searchParams.append("updateMask", String(opts.updateMask)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PATCH", body, }); return data as GoogleCloudApigeeV1TraceConfigOverride; } /** * Deletes a subscription for the environment's Pub/Sub topic. * * @param parent Required. Name of the environment. Use the following structure in your request: `organizations/{org}/environments/{env}` */ async organizationsEnvironmentsUnsubscribe(parent: string, req: GoogleCloudApigeeV1Subscription): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }:unsubscribe`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleProtobufEmpty; } /** * Updates an existing environment. When updating properties, you must pass * all existing properties to the API, even if they are not being changed. If * you omit properties from the payload, the properties are removed. To get * the current list of properties for the environment, use the [Get * Environment API](get). **Note**: Both `PUT` and `POST` methods are * supported for updating an existing environment. * * @param name Required. Name of the environment. Use the following structure in your request: `organizations/{org}/environments/{env}` */ async organizationsEnvironmentsUpdate(name: string, req: GoogleCloudApigeeV1Environment): Promise { req = serializeGoogleCloudApigeeV1Environment(req); const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PUT", body, }); return deserializeGoogleCloudApigeeV1Environment(data); } /** * Updates the debug mask singleton resource for an environment. * * @param name Name of the debug mask. */ async organizationsEnvironmentsUpdateDebugmask(name: string, req: GoogleCloudApigeeV1DebugMask, opts: OrganizationsEnvironmentsUpdateDebugmaskOptions = {}): Promise { opts = serializeOrganizationsEnvironmentsUpdateDebugmaskOptions(opts); const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.replaceRepeatedFields !== undefined) { url.searchParams.append("replaceRepeatedFields", String(opts.replaceRepeatedFields)); } if (opts.updateMask !== undefined) { url.searchParams.append("updateMask", String(opts.updateMask)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PATCH", body, }); return data as GoogleCloudApigeeV1DebugMask; } /** * Updates an existing environment. When updating properties, you must pass * all existing properties to the API, even if they are not being changed. If * you omit properties from the payload, the properties are removed. To get * the current list of properties for the environment, use the [Get * Environment API](get). **Note**: Both `PUT` and `POST` methods are * supported for updating an existing environment. * * @param name Required. Name of the environment. Use the following structure in your request: `organizations/{org}/environments/{env}` */ async organizationsEnvironmentsUpdateEnvironment(name: string, req: GoogleCloudApigeeV1Environment): Promise { req = serializeGoogleCloudApigeeV1Environment(req); const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1Environment(data); } /** * UpdateSecurityActionConfig updates the current SecurityActions * configuration. This method is used to enable/disable the feature at the * environment level. * * @param name This is a singleton resource, the name will always be set by SecurityActions and any user input will be ignored. The name is always: `organizations/{org}/environments/{env}/security_actions_config` */ async organizationsEnvironmentsUpdateSecurityActionsConfig(name: string, req: GoogleCloudApigeeV1SecurityActionsConfig, opts: OrganizationsEnvironmentsUpdateSecurityActionsConfigOptions = {}): Promise { opts = serializeOrganizationsEnvironmentsUpdateSecurityActionsConfigOptions(opts); const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.updateMask !== undefined) { url.searchParams.append("updateMask", String(opts.updateMask)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PATCH", body, }); return data as GoogleCloudApigeeV1SecurityActionsConfig; } /** * Updates the trace configurations in an environment. Note that the repeated * fields have replace semantics when included in the field mask and that they * will be overwritten by the value of the fields in the request body. * * @param name Required. Name of the trace configuration. Use the following structure in your request: "organizations/*/environments/*/traceConfig". */ async organizationsEnvironmentsUpdateTraceConfig(name: string, req: GoogleCloudApigeeV1TraceConfig, opts: OrganizationsEnvironmentsUpdateTraceConfigOptions = {}): Promise { opts = serializeOrganizationsEnvironmentsUpdateTraceConfigOptions(opts); const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.updateMask !== undefined) { url.searchParams.append("updateMask", String(opts.updateMask)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PATCH", body, }); return data as GoogleCloudApigeeV1TraceConfig; } /** * Gets the profile for an Apigee organization. See [Understanding * organizations](https://cloud.google.com/apigee/docs/api-platform/fundamentals/organization-structure). * * @param name Required. Apigee organization name in the following format: `organizations/{org}` */ async organizationsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1Organization; } /** * Lists the service accounts allowed to access Apigee control plane directly * for limited functionality. **Note**: Available to Apigee hybrid only. * * @param name Required. Resource name of the Control Plane Access. Use the following structure in your request: `organizations/{org}/controlPlaneAccess` */ async organizationsGetControlPlaneAccess(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ControlPlaneAccess; } /** * Gets the deployed ingress configuration for an organization. * * @param name Required. Name of the deployed configuration for the organization in the following format: 'organizations/{org}/deployedIngressConfig'. */ async organizationsGetDeployedIngressConfig(name: string, opts: OrganizationsGetDeployedIngressConfigOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.view !== undefined) { url.searchParams.append("view", String(opts.view)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1IngressConfig(data); } /** * Gets the project ID and region for an Apigee organization. * * @param name Required. Apigee organization name in the following format: `organizations/{org}` */ async organizationsGetProjectMapping(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }:getProjectMapping`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1OrganizationProjectMapping; } /** * Get runtime config for an organization. * * @param name Required. Name of the runtime config for the organization in the following format: 'organizations/{org}/runtimeConfig'. */ async organizationsGetRuntimeConfig(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1RuntimeConfig; } /** * GetSecuritySettings gets the security settings for API Security. * * @param name Required. The name of the SecuritySettings to retrieve. This will always be: 'organizations/{org}/securitySettings'. */ async organizationsGetSecuritySettings(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1SecuritySettings; } /** * Lists the service accounts with the permissions required to allow the * Synchronizer to download environment data from the control plane. An ETag * is returned in the response to `getSyncAuthorization`. Pass that ETag when * calling [setSyncAuthorization](setSyncAuthorization) to ensure that you are * updating the correct version. If you don't pass the ETag in the call to * `setSyncAuthorization`, then the existing authorization is overwritten * indiscriminately. For more information, see [Configure the * Synchronizer](https://cloud.google.com/apigee/docs/hybrid/latest/synchronizer-access). * **Note**: Available to Apigee hybrid only. * * @param name Required. Name of the Apigee organization. Use the following structure in your request: `organizations/{org}` */ async organizationsGetSyncAuthorization(name: string, req: GoogleCloudApigeeV1GetSyncAuthorizationRequest): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }:getSyncAuthorization`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1SyncAuthorization(data); } /** * Submit a query at host level to be processed in the background. If the * submission of the query succeeds, the API returns a 201 status and an ID * that refer to the query. In addition to the HTTP status 201, the `state` of * "enqueued" means that the request succeeded. * * @param parent Required. The parent resource name. Must be of the form `organizations/{org}`. */ async organizationsHostQueriesCreate(parent: string, req: GoogleCloudApigeeV1Query): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/hostQueries`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1AsyncQuery(data); } /** * Get status of a query submitted at host level. If the query is still in * progress, the `state` is set to "running" After the query has completed * successfully, `state` is set to "completed" * * @param name Required. Name of the asynchronous query to get. Must be of the form `organizations/{org}/queries/{queryId}`. */ async organizationsHostQueriesGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1AsyncQuery(data); } /** * After the query is completed, use this API to retrieve the results. If the * request succeeds, and there is a non-zero result set, the result is * downloaded to the client as a zipped JSON file. The name of the downloaded * file will be: OfflineQueryResult-.zip Example: * `OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip` * * @param name Required. Name of the asynchronous query result to get. Must be of the form `organizations/{org}/queries/{queryId}/result`. */ async organizationsHostQueriesGetResult(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleApiHttpBody(data); } async organizationsHostQueriesGetResultView(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1AsyncQueryResultView; } /** * Return a list of Asynchronous Queries at host level. * * @param parent Required. The parent resource name. Must be of the form `organizations/{org}`. */ async organizationsHostQueriesList(parent: string, opts: OrganizationsHostQueriesListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/hostQueries`); if (opts.dataset !== undefined) { url.searchParams.append("dataset", String(opts.dataset)); } if (opts.envgroupHostname !== undefined) { url.searchParams.append("envgroupHostname", String(opts.envgroupHostname)); } if (opts.from !== undefined) { url.searchParams.append("from", String(opts.from)); } if (opts.inclQueriesWithoutReport !== undefined) { url.searchParams.append("inclQueriesWithoutReport", String(opts.inclQueriesWithoutReport)); } if (opts.status !== undefined) { url.searchParams.append("status", String(opts.status)); } if (opts.submittedBy !== undefined) { url.searchParams.append("submittedBy", String(opts.submittedBy)); } if (opts.to !== undefined) { url.searchParams.append("to", String(opts.to)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListAsyncQueriesResponse(data); } /** * Submit a query at host level to be processed in the background. If the * submission of the query succeeds, the API returns a 201 status and an ID * that refer to the query. In addition to the HTTP status 201, the `state` of * "enqueued" means that the request succeeded. * * @param parent Required. The parent resource name. Must be of the form `organizations/{org}`. */ async organizationsHostSecurityReportsCreate(parent: string, req: GoogleCloudApigeeV1SecurityReportQuery): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/hostSecurityReports`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1SecurityReport(data); } /** * Get status of a query submitted at host level. If the query is still in * progress, the `state` is set to "running" After the query has completed * successfully, `state` is set to "completed" * * @param name Required. Name of the security report to get. Must be of the form `organizations/{org}/securityReports/{reportId}`. */ async organizationsHostSecurityReportsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1SecurityReport(data); } /** * After the query is completed, use this API to retrieve the results. If the * request succeeds, and there is a non-zero result set, the result is * downloaded to the client as a zipped JSON file. The name of the downloaded * file will be: OfflineQueryResult-.zip Example: * `OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip` * * @param name Required. Name of the security report result to get. Must be of the form `organizations/{org}/securityReports/{reportId}/result`. */ async organizationsHostSecurityReportsGetResult(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleApiHttpBody(data); } /** * After the query is completed, use this API to view the query result when * result size is small. * * @param name Required. Name of the security report result view to get. Must be of the form `organizations/{org}/securityReports/{reportId}/resultView`. */ async organizationsHostSecurityReportsGetResultView(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1SecurityReportResultView(data); } /** * Return a list of Security Reports at host level. * * @param parent Required. The parent resource name. Must be of the form `organizations/{org}`. */ async organizationsHostSecurityReportsList(parent: string, opts: OrganizationsHostSecurityReportsListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/hostSecurityReports`); if (opts.dataset !== undefined) { url.searchParams.append("dataset", String(opts.dataset)); } if (opts.envgroupHostname !== undefined) { url.searchParams.append("envgroupHostname", String(opts.envgroupHostname)); } if (opts.from !== undefined) { url.searchParams.append("from", String(opts.from)); } if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } if (opts.status !== undefined) { url.searchParams.append("status", String(opts.status)); } if (opts.submittedBy !== undefined) { url.searchParams.append("submittedBy", String(opts.submittedBy)); } if (opts.to !== undefined) { url.searchParams.append("to", String(opts.to)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListSecurityReportsResponse(data); } /** * Retrieve metrics grouped by dimensions in host level. The types of metrics * you can retrieve include traffic, message counts, API call latency, * response size, and cache hits and counts. Dimensions let you view metrics * in meaningful groups. You can optionally pass dimensions as path parameters * to the `stats` API. If dimensions are not specified, the metrics are * computed on the entire set of data for the given time range. * * @param name Required. Resource name for which the interactive query will be executed. Use the following format in your request: `organizations/{org}/hostStats/{dimensions}` Dimensions let you view metrics in meaningful groupings, such as `apiproxy`, `target_host`. The value of dimensions should be a comma-separated list as shown below `organizations/{org}/hostStats/apiproxy,request_verb` */ async organizationsHostStatsGet(name: string, opts: OrganizationsHostStatsGetOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.accuracy !== undefined) { url.searchParams.append("accuracy", String(opts.accuracy)); } if (opts.envgroupHostname !== undefined) { url.searchParams.append("envgroupHostname", String(opts.envgroupHostname)); } if (opts.filter !== undefined) { url.searchParams.append("filter", String(opts.filter)); } if (opts.limit !== undefined) { url.searchParams.append("limit", String(opts.limit)); } if (opts.offset !== undefined) { url.searchParams.append("offset", String(opts.offset)); } if (opts.realtime !== undefined) { url.searchParams.append("realtime", String(opts.realtime)); } if (opts.select !== undefined) { url.searchParams.append("select", String(opts.select)); } if (opts.sort !== undefined) { url.searchParams.append("sort", String(opts.sort)); } if (opts.sortby !== undefined) { url.searchParams.append("sortby", String(opts.sortby)); } if (opts.timeRange !== undefined) { url.searchParams.append("timeRange", String(opts.timeRange)); } if (opts.timeUnit !== undefined) { url.searchParams.append("timeUnit", String(opts.timeUnit)); } if (opts.topk !== undefined) { url.searchParams.append("topk", String(opts.topk)); } if (opts.tsAscending !== undefined) { url.searchParams.append("tsAscending", String(opts.tsAscending)); } if (opts.tzo !== undefined) { url.searchParams.append("tzo", String(opts.tzo)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1Stats; } /** * Creates a new attachment of an environment to an instance. **Note:** Not * supported for Apigee hybrid. * * @param parent Required. Name of the instance. Use the following structure in your request: `organizations/{org}/instances/{instance}`. */ async organizationsInstancesAttachmentsCreate(parent: string, req: GoogleCloudApigeeV1InstanceAttachment): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/attachments`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleLongrunningOperation; } /** * Deletes an attachment. **Note:** Not supported for Apigee hybrid. * * @param name Required. Name of the attachment. Use the following structure in your request: `organizations/{org}/instances/{instance}/attachments/{attachment}`. */ async organizationsInstancesAttachmentsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleLongrunningOperation; } /** * Gets an attachment. **Note:** Not supported for Apigee hybrid. * * @param name Required. Name of the attachment. Use the following structure in your request: `organizations/{org}/instances/{instance}/attachments/{attachment}` */ async organizationsInstancesAttachmentsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1InstanceAttachment; } /** * Lists all attachments to an instance. **Note:** Not supported for Apigee * hybrid. * * @param parent Required. Name of the organization. Use the following structure in your request: `organizations/{org}/instances/{instance}` */ async organizationsInstancesAttachmentsList(parent: string, opts: OrganizationsInstancesAttachmentsListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/attachments`); if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListInstanceAttachmentsResponse; } /** * Creates a new canary evaluation for an organization. * * @param parent Required. Name of the organization. Use the following structure in your request: `organizations/{org}/instances/{instance}`. */ async organizationsInstancesCanaryevaluationsCreate(parent: string, req: GoogleCloudApigeeV1CanaryEvaluation): Promise { req = serializeGoogleCloudApigeeV1CanaryEvaluation(req); const url = new URL(`${this.#baseUrl}v1/${ parent }/canaryevaluations`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleLongrunningOperation; } /** * Gets a CanaryEvaluation for an organization. * * @param name Required. Name of the CanaryEvaluation. Use the following structure in your request: `organizations/{org}/instances/*/canaryevaluations/{evaluation}` */ async organizationsInstancesCanaryevaluationsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1CanaryEvaluation(data); } /** * Creates an Apigee runtime instance. The instance is accessible from the * authorized network configured on the organization. **Note:** Not supported * for Apigee hybrid. * * @param parent Required. Name of the organization. Use the following structure in your request: `organizations/{org}`. */ async organizationsInstancesCreate(parent: string, req: GoogleCloudApigeeV1Instance): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/instances`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleLongrunningOperation; } /** * Deletes an Apigee runtime instance. The instance stops serving requests * and the runtime data is deleted. **Note:** Not supported for Apigee hybrid. * * @param name Required. Name of the instance. Use the following structure in your request: `organizations/{org}/instances/{instance}`. */ async organizationsInstancesDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleLongrunningOperation; } /** * Gets the details for an Apigee runtime instance. **Note:** Not supported * for Apigee hybrid. * * @param name Required. Name of the instance. Use the following structure in your request: `organizations/{org}/instances/{instance}`. */ async organizationsInstancesGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1Instance; } /** * Lists all Apigee runtime instances for the organization. **Note:** Not * supported for Apigee hybrid. * * @param parent Required. Name of the organization. Use the following structure in your request: `organizations/{org}`. */ async organizationsInstancesList(parent: string, opts: OrganizationsInstancesListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/instances`); if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListInstancesResponse; } /** * Activates the NAT address. The Apigee instance can now use this for * Internet egress traffic. **Note:** Not supported for Apigee hybrid. * * @param name Required. Name of the nat address. Use the following structure in your request: `organizations/{org}/instances/{instances}/natAddresses/{nataddress}`` */ async organizationsInstancesNatAddressesActivate(name: string, req: GoogleCloudApigeeV1ActivateNatAddressRequest): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }:activate`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleLongrunningOperation; } /** * Creates a NAT address. The address is created in the RESERVED state and a * static external IP address will be provisioned. At this time, the instance * will not use this IP address for Internet egress traffic. The address can * be activated for use once any required firewall IP whitelisting has been * completed. **Note:** Not supported for Apigee hybrid. * * @param parent Required. Name of the instance. Use the following structure in your request: `organizations/{org}/instances/{instance}` */ async organizationsInstancesNatAddressesCreate(parent: string, req: GoogleCloudApigeeV1NatAddress): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/natAddresses`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleLongrunningOperation; } /** * Deletes the NAT address. Connections that are actively using the address * are drained before it is removed. **Note:** Not supported for Apigee * hybrid. * * @param name Required. Name of the nat address. Use the following structure in your request: `organizations/{org}/instances/{instances}/natAddresses/{nataddress}`` */ async organizationsInstancesNatAddressesDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleLongrunningOperation; } /** * Gets the details of a NAT address. **Note:** Not supported for Apigee * hybrid. * * @param name Required. Name of the nat address. Use the following structure in your request: `organizations/{org}/instances/{instances}/natAddresses/{nataddress}` */ async organizationsInstancesNatAddressesGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1NatAddress; } /** * Lists the NAT addresses for an Apigee instance. **Note:** Not supported * for Apigee hybrid. * * @param parent Required. Name of the instance. Use the following structure in your request: `organizations/{org}/instances/{instance}` */ async organizationsInstancesNatAddressesList(parent: string, opts: OrganizationsInstancesNatAddressesListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/natAddresses`); if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListNatAddressesResponse; } /** * Updates an Apigee runtime instance. You can update the fields described in * NodeConfig. No other fields will be updated. **Note:** Not supported for * Apigee hybrid. * * @param name Required. Name of the instance. Use the following structure in your request: `organizations/{org}/instances/{instance}`. */ async organizationsInstancesPatch(name: string, req: GoogleCloudApigeeV1Instance, opts: OrganizationsInstancesPatchOptions = {}): Promise { opts = serializeOrganizationsInstancesPatchOptions(opts); const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.updateMask !== undefined) { url.searchParams.append("updateMask", String(opts.updateMask)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PATCH", body, }); return data as GoogleLongrunningOperation; } /** * Reports the latest status for a runtime instance. * * @param instance The name of the instance reporting this status. For SaaS the request will be rejected if no instance exists under this name. Format is organizations/{org}/instances/{instance} */ async organizationsInstancesReportStatus(instance: string, req: GoogleCloudApigeeV1ReportInstanceStatusRequest): Promise { req = serializeGoogleCloudApigeeV1ReportInstanceStatusRequest(req); const url = new URL(`${this.#baseUrl}v1/${ instance }:reportStatus`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1ReportInstanceStatusResponse; } /** * Creates a key value map in an organization. * * @param parent Required. Name of the organization in which to create the key value map file. Use the following structure in your request: `organizations/{org}` */ async organizationsKeyvaluemapsCreate(parent: string, req: GoogleCloudApigeeV1KeyValueMap): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/keyvaluemaps`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1KeyValueMap; } /** * Deletes a key value map from an organization. * * @param name Required. Name of the key value map. Use the following structure in your request: `organizations/{org}/keyvaluemaps/{keyvaluemap}` */ async organizationsKeyvaluemapsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleCloudApigeeV1KeyValueMap; } /** * Creates key value entries in a key value map scoped to an organization, * environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and * higher. * * @param parent Required. Scope as indicated by the URI in which to create the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`. */ async organizationsKeyvaluemapsEntriesCreate(parent: string, req: GoogleCloudApigeeV1KeyValueEntry): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/entries`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1KeyValueEntry; } /** * Deletes a key value entry from a key value map scoped to an organization, * environment, or API proxy. **Notes:** * After you delete the key value * entry, the policy consuming the entry will continue to function with its * cached values for a few minutes. This is expected behavior. * Supported for * Apigee hybrid 1.8.x and higher. * * @param name Required. Scope as indicated by the URI in which to delete the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}/entries/{entry}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. */ async organizationsKeyvaluemapsEntriesDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleCloudApigeeV1KeyValueEntry; } /** * Get the key value entry value for a key value map scoped to an * organization, environment, or API proxy. **Note**: Supported for Apigee * hybrid 1.8.x and higher. * * @param name Required. Scope as indicated by the URI in which to fetch the key value map entry/value. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}/entries/{entry}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. */ async organizationsKeyvaluemapsEntriesGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1KeyValueEntry; } /** * Lists key value entries for key values maps scoped to an organization, * environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and * higher. * * @param parent Required. Scope as indicated by the URI in which to list key value maps. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`. */ async organizationsKeyvaluemapsEntriesList(parent: string, opts: OrganizationsKeyvaluemapsEntriesListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/entries`); if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListKeyValueEntriesResponse; } /** * Update key value entry scoped to an organization, environment, or API * proxy for an existing key. * * @param name Required. Scope as indicated by the URI in which to create the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`. */ async organizationsKeyvaluemapsEntriesUpdate(name: string, req: GoogleCloudApigeeV1KeyValueEntry): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PUT", body, }); return data as GoogleCloudApigeeV1KeyValueEntry; } /** * Lists the Apigee organizations and associated Google Cloud projects that * you have permission to access. See [Understanding * organizations](https://cloud.google.com/apigee/docs/api-platform/fundamentals/organization-structure). * * @param parent Required. Use the following structure in your request: `organizations` */ async organizationsList(parent: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListOrganizationsResponse; } /** * Gets the latest state of a long-running operation. Clients can use this * method to poll the operation result at intervals as recommended by the API * service. * * @param name The name of the operation resource. */ async organizationsOperationsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleLongrunningOperation; } /** * Lists operations that match the specified filter in the request. If the * server doesn't support this method, it returns `UNIMPLEMENTED`. * * @param name The name of the operation's parent resource. */ async organizationsOperationsList(name: string, opts: OrganizationsOperationsListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }/operations`); if (opts.filter !== undefined) { url.searchParams.append("filter", String(opts.filter)); } if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleLongrunningListOperationsResponse; } /** * Similar to GetHostStats except that the response is less verbose. * * @param name Required. Resource name for which the interactive query will be executed. Use the following format in your request: `organizations/{organization_id}/optimizedHostStats/{dimensions}` Dimensions let you view metrics in meaningful groupings, such as `apiproxy`, `target_host`. The value of dimensions should be a comma-separated list as shown below: `organizations/{org}/optimizedHostStats/apiproxy,request_verb` */ async organizationsOptimizedHostStatsGet(name: string, opts: OrganizationsOptimizedHostStatsGetOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.accuracy !== undefined) { url.searchParams.append("accuracy", String(opts.accuracy)); } if (opts.envgroupHostname !== undefined) { url.searchParams.append("envgroupHostname", String(opts.envgroupHostname)); } if (opts.filter !== undefined) { url.searchParams.append("filter", String(opts.filter)); } if (opts.limit !== undefined) { url.searchParams.append("limit", String(opts.limit)); } if (opts.offset !== undefined) { url.searchParams.append("offset", String(opts.offset)); } if (opts.realtime !== undefined) { url.searchParams.append("realtime", String(opts.realtime)); } if (opts.select !== undefined) { url.searchParams.append("select", String(opts.select)); } if (opts.sort !== undefined) { url.searchParams.append("sort", String(opts.sort)); } if (opts.sortby !== undefined) { url.searchParams.append("sortby", String(opts.sortby)); } if (opts.timeRange !== undefined) { url.searchParams.append("timeRange", String(opts.timeRange)); } if (opts.timeUnit !== undefined) { url.searchParams.append("timeUnit", String(opts.timeUnit)); } if (opts.topk !== undefined) { url.searchParams.append("topk", String(opts.topk)); } if (opts.tsAscending !== undefined) { url.searchParams.append("tsAscending", String(opts.tsAscending)); } if (opts.tzo !== undefined) { url.searchParams.append("tzo", String(opts.tzo)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1OptimizedStats(data); } /** * Creates a Custom Report for an Organization. A Custom Report provides * Apigee Customers to create custom dashboards in addition to the standard * dashboards which are provided. The Custom Report in its simplest form * contains specifications about metrics, dimensions and filters. It is * important to note that the custom report by itself does not provide an * executable entity. The Edge UI converts the custom report definition into * an analytics query and displays the result in a chart. * * @param parent Required. The parent organization name under which the Custom Report will be created. Must be of the form: `organizations/{organization_id}/reports` */ async organizationsReportsCreate(parent: string, req: GoogleCloudApigeeV1CustomReport): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/reports`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1CustomReport; } /** * Deletes an existing custom report definition * * @param name Required. Custom Report name of the form: `organizations/{organization_id}/reports/{report_name}` */ async organizationsReportsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleCloudApigeeV1DeleteCustomReportResponse; } /** * Retrieve a custom report definition. * * @param name Required. Custom Report name of the form: `organizations/{organization_id}/reports/{report_name}` */ async organizationsReportsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1CustomReport; } /** * Return a list of Custom Reports * * @param parent Required. The parent organization name under which the API product will be listed `organizations/{organization_id}/reports` */ async organizationsReportsList(parent: string, opts: OrganizationsReportsListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/reports`); if (opts.expand !== undefined) { url.searchParams.append("expand", String(opts.expand)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListCustomReportsResponse; } /** * Update an existing custom report definition * * @param name Required. Custom Report name of the form: `organizations/{organization_id}/reports/{report_name}` */ async organizationsReportsUpdate(name: string, req: GoogleCloudApigeeV1CustomReport): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PUT", body, }); return data as GoogleCloudApigeeV1CustomReport; } /** * Compute RAV2 security scores for a set of resources. * * @param name Required. Name of the organization for which the score needs to be computed in the following format: `organizations/{org}/securityAssessmentResults` */ async organizationsSecurityAssessmentResultsBatchCompute(name: string, req: GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequest): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }:batchCompute`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsResponse(data); } /** * CreateSecurityProfile create a new custom security profile. * * @param parent Required. Name of organization. Format: organizations/{org} */ async organizationsSecurityProfilesCreate(parent: string, req: GoogleCloudApigeeV1SecurityProfile, opts: OrganizationsSecurityProfilesCreateOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/securityProfiles`); if (opts.securityProfileId !== undefined) { url.searchParams.append("securityProfileId", String(opts.securityProfileId)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1SecurityProfile; } /** * DeleteSecurityProfile delete a profile with all its revisions. * * @param name Required. Name of profile. Format: organizations/{org}/securityProfiles/{profile} */ async organizationsSecurityProfilesDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleProtobufEmpty; } /** * ComputeEnvironmentScores calculates scores for requested time range for * the specified security profile and environment. * * @param profileEnvironment Required. Name of organization and environment and profile id for which score needs to be computed. Format: organizations/{org}/securityProfiles/{profile}/environments/{env} */ async organizationsSecurityProfilesEnvironmentsComputeEnvironmentScores(profileEnvironment: string, req: GoogleCloudApigeeV1ComputeEnvironmentScoresRequest): Promise { req = serializeGoogleCloudApigeeV1ComputeEnvironmentScoresRequest(req); const url = new URL(`${this.#baseUrl}v1/${ profileEnvironment }:computeEnvironmentScores`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1ComputeEnvironmentScoresResponse(data); } /** * CreateSecurityProfileEnvironmentAssociation creates profile environment * association i.e. attaches environment to security profile. * * @param parent Required. Name of organization and security profile ID. Format: organizations/{org}/securityProfiles/{profile} */ async organizationsSecurityProfilesEnvironmentsCreate(parent: string, req: GoogleCloudApigeeV1SecurityProfileEnvironmentAssociation): Promise { req = serializeGoogleCloudApigeeV1SecurityProfileEnvironmentAssociation(req); const url = new URL(`${this.#baseUrl}v1/${ parent }/environments`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1SecurityProfileEnvironmentAssociation(data); } /** * DeleteSecurityProfileEnvironmentAssociation removes profile environment * association i.e. detaches environment from security profile. * * @param name Required. The name of the environment attachment to delete. Format: organizations/{org}/securityProfiles/{profile}/environments/{env} */ async organizationsSecurityProfilesEnvironmentsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleProtobufEmpty; } /** * GetSecurityProfile gets the specified security profile. Returns NOT_FOUND * if security profile is not present for the specified organization. * * @param name Required. Security profile in the following format: `organizations/{org}/securityProfiles/{profile}'. Profile may optionally contain revision ID. If revision ID is not provided, the response will contain latest revision by default. Example: organizations/testOrg/securityProfiles/testProfile@5 */ async organizationsSecurityProfilesGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1SecurityProfile; } /** * ListSecurityProfiles lists all the security profiles associated with the * org including attached and unattached profiles. * * @param parent Required. For a specific organization, list of all the security profiles. Format: `organizations/{org}` */ async organizationsSecurityProfilesList(parent: string, opts: OrganizationsSecurityProfilesListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/securityProfiles`); if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListSecurityProfilesResponse; } /** * ListSecurityProfileRevisions lists all the revisions of the security * profile. * * @param name Required. For a specific profile, list all the revisions. Format: `organizations/{org}/securityProfiles/{profile}` */ async organizationsSecurityProfilesListRevisions(name: string, opts: OrganizationsSecurityProfilesListRevisionsOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }:listRevisions`); if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListSecurityProfileRevisionsResponse; } /** * UpdateSecurityProfile update the metadata of security profile. * * @param name Immutable. Name of the security profile resource. Format: organizations/{org}/securityProfiles/{profile} */ async organizationsSecurityProfilesPatch(name: string, req: GoogleCloudApigeeV1SecurityProfile, opts: OrganizationsSecurityProfilesPatchOptions = {}): Promise { opts = serializeOrganizationsSecurityProfilesPatchOptions(opts); const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.updateMask !== undefined) { url.searchParams.append("updateMask", String(opts.updateMask)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PATCH", body, }); return data as GoogleCloudApigeeV1SecurityProfile; } /** * Create a security profile v2. * * @param parent Required. The parent resource name. Format: `organizations/{org}` */ async organizationsSecurityProfilesV2Create(parent: string, req: GoogleCloudApigeeV1SecurityProfileV2, opts: OrganizationsSecurityProfilesV2CreateOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/securityProfilesV2`); if (opts.securityProfileV2Id !== undefined) { url.searchParams.append("securityProfileV2Id", String(opts.securityProfileV2Id)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1SecurityProfileV2; } /** * Delete a security profile v2. * * @param name Required. The name of the security profile v2 to delete. Format: `organizations/{org}/securityProfilesV2/{profile}` */ async organizationsSecurityProfilesV2Delete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleProtobufEmpty; } /** * Get a security profile v2. * * @param name Required. The name of the security profile v2 to get. Format: `organizations/{org}/securityProfilesV2/{profile}` */ async organizationsSecurityProfilesV2Get(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1SecurityProfileV2; } /** * List security profiles v2. * * @param parent Required. For a specific organization, list of all the security profiles. Format: `organizations/{org}` */ async organizationsSecurityProfilesV2List(parent: string, opts: OrganizationsSecurityProfilesV2ListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/securityProfilesV2`); if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListSecurityProfilesV2Response; } /** * Update a security profile V2. * * @param name Identifier. Name of the security profile v2 resource. Format: organizations/{org}/securityProfilesV2/{profile} */ async organizationsSecurityProfilesV2Patch(name: string, req: GoogleCloudApigeeV1SecurityProfileV2, opts: OrganizationsSecurityProfilesV2PatchOptions = {}): Promise { opts = serializeOrganizationsSecurityProfilesV2PatchOptions(opts); const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.updateMask !== undefined) { url.searchParams.append("updateMask", String(opts.updateMask)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PATCH", body, }); return data as GoogleCloudApigeeV1SecurityProfileV2; } /** * Configures the add-ons for the Apigee organization. The existing add-on * configuration will be fully replaced. * * @param org Required. Name of the organization. Use the following structure in your request: `organizations/{org}` */ async organizationsSetAddons(org: string, req: GoogleCloudApigeeV1SetAddonsRequest): Promise { const url = new URL(`${this.#baseUrl}v1/${ org }:setAddons`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleLongrunningOperation; } /** * Sets the permissions required to allow the Synchronizer to download * environment data from the control plane. You must call this API to enable * proper functioning of hybrid. Pass the ETag when calling * `setSyncAuthorization` to ensure that you are updating the correct version. * To get an ETag, call [getSyncAuthorization](getSyncAuthorization). If you * don't pass the ETag in the call to `setSyncAuthorization`, then the * existing authorization is overwritten indiscriminately. For more * information, see [Configure the * Synchronizer](https://cloud.google.com/apigee/docs/hybrid/latest/synchronizer-access). * **Note**: Available to Apigee hybrid only. * * @param name Required. Name of the Apigee organization. Use the following structure in your request: `organizations/{org}` */ async organizationsSetSyncAuthorization(name: string, req: GoogleCloudApigeeV1SyncAuthorization): Promise { req = serializeGoogleCloudApigeeV1SyncAuthorization(req); const url = new URL(`${this.#baseUrl}v1/${ name }:setSyncAuthorization`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1SyncAuthorization(data); } /** * Uploads a ZIP-formatted shared flow configuration bundle to an * organization. If the shared flow already exists, this creates a new * revision of it. If the shared flow does not exist, this creates it. Once * imported, the shared flow revision must be deployed before it can be * accessed at runtime. The size limit of a shared flow bundle is 15 MB. * * @param parent Required. The name of the parent organization under which to create the shared flow. Must be of the form: `organizations/{organization_id}` */ async organizationsSharedflowsCreate(parent: string, req: GoogleApiHttpBody, opts: OrganizationsSharedflowsCreateOptions = {}): Promise { req = serializeGoogleApiHttpBody(req); const url = new URL(`${this.#baseUrl}v1/${ parent }/sharedflows`); if (opts.action !== undefined) { url.searchParams.append("action", String(opts.action)); } if (opts.name !== undefined) { url.searchParams.append("name", String(opts.name)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1SharedFlowRevision(data); } /** * Deletes a shared flow and all it's revisions. The shared flow must be * undeployed before you can delete it. * * @param name Required. shared flow name of the form: `organizations/{organization_id}/sharedflows/{shared_flow_id}` */ async organizationsSharedflowsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return deserializeGoogleCloudApigeeV1SharedFlow(data); } /** * Lists all deployments of a shared flow. * * @param parent Required. Name of the shared flow for which to return deployment information in the following format: `organizations/{org}/sharedflows/{sharedflow}` */ async organizationsSharedflowsDeploymentsList(parent: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/deployments`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListDeploymentsResponse(data); } /** * Gets a shared flow by name, including a list of its revisions. * * @param name Required. The name of the shared flow to get. Must be of the form: `organizations/{organization_id}/sharedflows/{shared_flow_id}` */ async organizationsSharedflowsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1SharedFlow(data); } /** * Lists all shared flows in the organization. * * @param parent Required. The name of the parent organization under which to get shared flows. Must be of the form: `organizations/{organization_id}` */ async organizationsSharedflowsList(parent: string, opts: OrganizationsSharedflowsListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/sharedflows`); if (opts.includeMetaData !== undefined) { url.searchParams.append("includeMetaData", String(opts.includeMetaData)); } if (opts.includeRevisions !== undefined) { url.searchParams.append("includeRevisions", String(opts.includeRevisions)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListSharedFlowsResponse(data); } /** * Deletes a shared flow and all associated policies, resources, and * revisions. You must undeploy the shared flow before deleting it. * * @param name Required. The name of the shared flow revision to delete. Must be of the form: `organizations/{organization_id}/sharedflows/{shared_flow_id}/revisions/{revision_id}` */ async organizationsSharedflowsRevisionsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return deserializeGoogleCloudApigeeV1SharedFlowRevision(data); } /** * Lists all deployments of a shared flow revision. * * @param parent Required. Name of the API proxy revision for which to return deployment information in the following format: `organizations/{org}/sharedflows/{sharedflow}/revisions/{rev}`. */ async organizationsSharedflowsRevisionsDeploymentsList(parent: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/deployments`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListDeploymentsResponse(data); } /** * Gets a revision of a shared flow. To download the shared flow * configuration bundle for the specified revision as a zip file, set the * `format` query parameter to `bundle`. If you are using curl, specify `-o * filename.zip` to save the output to a file; otherwise, it displays to * `stdout`. Then, develop the shared flow configuration locally and upload * the updated sharedFlow configuration revision, as described in * [updateSharedFlowRevision](updateSharedFlowRevision). * * @param name Required. The name of the shared flow revision to get. Must be of the form: `organizations/{organization_id}/sharedflows/{shared_flow_id}/revisions/{revision_id}` */ async organizationsSharedflowsRevisionsGet(name: string, opts: OrganizationsSharedflowsRevisionsGetOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.format !== undefined) { url.searchParams.append("format", String(opts.format)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleApiHttpBody(data); } /** * Updates a shared flow revision. This operation is only allowed on * revisions which have never been deployed. After deployment a revision * becomes immutable, even if it becomes undeployed. The payload is a * ZIP-formatted shared flow. Content type must be either multipart/form-data * or application/octet-stream. * * @param name Required. The name of the shared flow revision to update. Must be of the form: `organizations/{organization_id}/sharedflows/{shared_flow_id}/revisions/{revision_id}` */ async organizationsSharedflowsRevisionsUpdateSharedFlowRevision(name: string, req: GoogleApiHttpBody, opts: OrganizationsSharedflowsRevisionsUpdateSharedFlowRevisionOptions = {}): Promise { req = serializeGoogleApiHttpBody(req); const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.validate !== undefined) { url.searchParams.append("validate", String(opts.validate)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1SharedFlowRevision(data); } /** * Creates a new API category. * * @param parent Required. Name of the portal. Use the following structure in your request: `organizations/{org}/sites/{site}` */ async organizationsSitesApicategoriesCreate(parent: string, req: GoogleCloudApigeeV1ApiCategory): Promise { req = serializeGoogleCloudApigeeV1ApiCategory(req); const url = new URL(`${this.#baseUrl}v1/${ parent }/apicategories`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return deserializeGoogleCloudApigeeV1ApiCategoryResponse(data); } /** * Deletes an API category. * * @param name Required. Name of the category. Use the following structure in your request: `organizations/{org}/sites/{site}/apicategories/{apicategory}` */ async organizationsSitesApicategoriesDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleCloudApigeeV1DeleteResponse; } /** * Gets an API category. * * @param name Required. Name of the category. Use the following structure in your request: `organizations/{org}/sites/{site}/apicategories/{apicategory}` */ async organizationsSitesApicategoriesGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ApiCategoryResponse(data); } /** * Returns the API categories associated with a portal. * * @param parent Required. Name of the portal. Use the following structure in your request: `organizations/{org}/sites/{site}` */ async organizationsSitesApicategoriesList(parent: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/apicategories`); const data = await request(url.href, { client: this.#client, method: "GET", }); return deserializeGoogleCloudApigeeV1ListApiCategoriesResponse(data); } /** * Updates an API category. * * @param name Required. Name of the category. Use the following structure in your request: `organizations/{org}/sites/{site}/apicategories/{apicategory}` */ async organizationsSitesApicategoriesPatch(name: string, req: GoogleCloudApigeeV1ApiCategory): Promise { req = serializeGoogleCloudApigeeV1ApiCategory(req); const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PATCH", body, }); return deserializeGoogleCloudApigeeV1ApiCategoryResponse(data); } /** * Creates a new catalog item. * * @param parent Required. Name of the portal. Use the following structure in your request: `organizations/{org}/sites/{site}` */ async organizationsSitesApidocsCreate(parent: string, req: GoogleCloudApigeeV1ApiDoc): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/apidocs`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleCloudApigeeV1ApiDocResponse; } /** * Deletes a catalog item. * * @param name Required. Name of the catalog item. Use the following structure in your request: `organizations/{org}/sites/{site}/apidocs/{apidoc}` */ async organizationsSitesApidocsDelete(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "DELETE", }); return data as GoogleCloudApigeeV1DeleteResponse; } /** * Gets a catalog item. * * @param name Required. Name of the catalog item. Use the following structure in your request: `organizations/{org}/sites/{site}/apidocs/{apidoc}` */ async organizationsSitesApidocsGet(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ApiDocResponse; } /** * Gets the documentation for the specified catalog item. * * @param name Required. Resource name of the catalog item documentation. Use the following structure in your request: `organizations/{org}/sites/{site}/apidocs/{apidoc}/documentation` */ async organizationsSitesApidocsGetDocumentation(name: string): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ApiDocDocumentationResponse; } /** * Returns the catalog items associated with a portal. * * @param parent Required. Name of the portal. Use the following structure in your request: `organizations/{org}/sites/{site}` */ async organizationsSitesApidocsList(parent: string, opts: OrganizationsSitesApidocsListOptions = {}): Promise { const url = new URL(`${this.#baseUrl}v1/${ parent }/apidocs`); if (opts.pageSize !== undefined) { url.searchParams.append("pageSize", String(opts.pageSize)); } if (opts.pageToken !== undefined) { url.searchParams.append("pageToken", String(opts.pageToken)); } const data = await request(url.href, { client: this.#client, method: "GET", }); return data as GoogleCloudApigeeV1ListApiDocsResponse; } /** * Updates a catalog item. * * @param name Required. Name of the catalog item. Use the following structure in your request: `organizations/{org}/sites/{site}/apidocs/{apidoc}` */ async organizationsSitesApidocsUpdate(name: string, req: GoogleCloudApigeeV1ApiDoc): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PUT", body, }); return data as GoogleCloudApigeeV1ApiDocResponse; } /** * Updates the documentation for the specified catalog item. Note that the * documentation file contents will not be populated in the return message. * * @param name Required. Resource name of the catalog item documentation. Use the following structure in your request: `organizations/{org}/sites/{site}/apidocs/{apidoc}/documentation` */ async organizationsSitesApidocsUpdateDocumentation(name: string, req: GoogleCloudApigeeV1ApiDocDocumentation): Promise { req = serializeGoogleCloudApigeeV1ApiDocDocumentation(req); const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PATCH", body, }); return data as GoogleCloudApigeeV1ApiDocDocumentationResponse; } /** * Updates the properties for an Apigee organization. No other fields in the * organization profile will be updated. * * @param name Required. Apigee organization name in the following format: `organizations/{org}` */ async organizationsUpdate(name: string, req: GoogleCloudApigeeV1Organization): Promise { const url = new URL(`${this.#baseUrl}v1/${ name }`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PUT", body, }); return data as GoogleCloudApigeeV1Organization; } /** * Updates the permissions required to allow Apigee runtime-plane components * access to the control plane. Currently, the permissions required are to: 1. * Allow runtime components to publish analytics data to the control plane. * **Note**: Available to Apigee hybrid only. * * @param name Identifier. The resource name of the ControlPlaneAccess. Format: "organizations/{org}/controlPlaneAccess" */ async organizationsUpdateControlPlaneAccess(name: string, req: GoogleCloudApigeeV1ControlPlaneAccess, opts: OrganizationsUpdateControlPlaneAccessOptions = {}): Promise { opts = serializeOrganizationsUpdateControlPlaneAccessOptions(opts); const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.updateMask !== undefined) { url.searchParams.append("updateMask", String(opts.updateMask)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PATCH", body, }); return data as GoogleLongrunningOperation; } /** * UpdateSecuritySettings updates the current security settings for API * Security. * * @param name Identifier. Full resource name is always `organizations/{org}/securitySettings`. */ async organizationsUpdateSecuritySettings(name: string, req: GoogleCloudApigeeV1SecuritySettings, opts: OrganizationsUpdateSecuritySettingsOptions = {}): Promise { opts = serializeOrganizationsUpdateSecuritySettingsOptions(opts); const url = new URL(`${this.#baseUrl}v1/${ name }`); if (opts.updateMask !== undefined) { url.searchParams.append("updateMask", String(opts.updateMask)); } const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "PATCH", body, }); return data as GoogleCloudApigeeV1SecuritySettings; } /** * Provisions a new Apigee organization with a functioning runtime. This is * the standard way to create trial organizations for a free Apigee trial. * * @param project Required. Name of the GCP project with which to associate the Apigee organization. */ async projectsProvisionOrganization(project: string, req: GoogleCloudApigeeV1ProvisionOrganizationRequest): Promise { const url = new URL(`${this.#baseUrl}v1/${ project }:provisionOrganization`); const body = JSON.stringify(req); const data = await request(url.href, { client: this.#client, method: "POST", body, }); return data as GoogleLongrunningOperation; } } /** * Describes why a bundle is invalid. Intended for use in error details. */ export interface EdgeConfigstoreBundleBadBundle { /** * Describes all precondition violations. */ violations?: EdgeConfigstoreBundleBadBundleViolation[]; } /** * A message type used to describe a single bundle validation error. */ export interface EdgeConfigstoreBundleBadBundleViolation { /** * A description of why the bundle is invalid and how to fix it. */ description?: string; /** * The filename (including relative path from the bundle root) in which the * error occurred. */ filename?: string; } /** * Message that represents an arbitrary HTTP body. It should only be used for * payload formats that can't be represented as JSON, such as raw binary or an * HTML page. This message can be used both in streaming and non-streaming API * methods in the request as well as the response. It can be used as a top-level * request field, which is convenient if one wants to extract parameters from * either the URL or HTTP template into the request fields and also want access * to the raw HTTP body. Example: message GetResourceRequest { // A unique * request id. string request_id = 1; // The raw HTTP body is bound to this * field. google.api.HttpBody http_body = 2; } service ResourceService { rpc * GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc * UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); } * Example with streaming methods: service CaldavService { rpc * GetCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); * rpc UpdateCalendar(stream google.api.HttpBody) returns (stream * google.api.HttpBody); } Use of this type only changes how the request and * response bodies are handled, all other features will continue to work * unchanged. */ export interface GoogleApiHttpBody { /** * The HTTP Content-Type header value specifying the content type of the * body. */ contentType?: string; /** * The HTTP request/response body as raw binary. */ data?: Uint8Array; /** * Application specific response metadata. Must be set in the first response * for streaming APIs. */ extensions?: { [key: string]: any }[]; } function serializeGoogleApiHttpBody(data: any): GoogleApiHttpBody { return { ...data, data: data["data"] !== undefined ? encodeBase64(data["data"]) : undefined, }; } function deserializeGoogleApiHttpBody(data: any): GoogleApiHttpBody { return { ...data, data: data["data"] !== undefined ? decodeBase64(data["data"] as string) : undefined, }; } export interface GoogleCloudApigeeV1Access { Get?: GoogleCloudApigeeV1AccessGet; Remove?: GoogleCloudApigeeV1AccessRemove; Set?: GoogleCloudApigeeV1AccessSet; } /** * Get action. For example, "Get" : { "name" : "target.name", "value" : * "default" } */ export interface GoogleCloudApigeeV1AccessGet { name?: string; value?: string; } /** * Access logging configuration enables customers to ship the access logs from * the tenant projects to their own project's cloud logging. The feature is at * the instance level ad disabled by default. It can be enabled during * CreateInstance or UpdateInstance. */ export interface GoogleCloudApigeeV1AccessLoggingConfig { /** * Optional. Boolean flag that specifies whether the customer access log * feature is enabled. */ enabled?: boolean; /** * Optional. Ship the access log entries that match the status_code defined * in the filter. The status_code is the only expected/supported filter field. * (Ex: status_code) The filter will parse it to the Common Expression * Language semantics for expression evaluation to build the filter condition. * (Ex: "filter": status_code >= 200 && status_code < 300 ) */ filter?: string; } /** * Remove action. For example, "Remove" : { "name" : "target.name", "success" : * true } */ export interface GoogleCloudApigeeV1AccessRemove { name?: string; success?: boolean; } /** * Set action. For example, "Set" : { "name" : "target.name", "success" : true, * "value" : "default" } */ export interface GoogleCloudApigeeV1AccessSet { name?: string; success?: boolean; value?: string; } /** * Request for ActivateNatAddressRequest. Activate the nat address request. */ export interface GoogleCloudApigeeV1ActivateNatAddressRequest { } /** * Add-on configurations for the Apigee organization. */ export interface GoogleCloudApigeeV1AddonsConfig { /** * Configuration for the Advanced API Ops add-on. */ advancedApiOpsConfig?: GoogleCloudApigeeV1AdvancedApiOpsConfig; /** * Configuration for the Analytics add-on. Only used in * organizations.environments.addonsConfig. */ analyticsConfig?: GoogleCloudApigeeV1AnalyticsConfig; /** * Configuration for the API Security add-on. */ apiSecurityConfig?: GoogleCloudApigeeV1ApiSecurityConfig; /** * Configuration for the Connectors Platform add-on. */ connectorsPlatformConfig?: GoogleCloudApigeeV1ConnectorsPlatformConfig; /** * Configuration for the Integration add-on. */ integrationConfig?: GoogleCloudApigeeV1IntegrationConfig; /** * Configuration for the Monetization add-on. */ monetizationConfig?: GoogleCloudApigeeV1MonetizationConfig; } /** * Request for AdjustDeveloperBalance. */ export interface GoogleCloudApigeeV1AdjustDeveloperBalanceRequest { /** * * A positive value of `adjustment` means that that the API provider wants * to adjust the balance for an under-charged developer i.e. the balance of * the developer will decrease. * A negative value of `adjustment` means that * that the API provider wants to adjust the balance for an over-charged * developer i.e. the balance of the developer will increase. */ adjustment?: GoogleTypeMoney; } function serializeGoogleCloudApigeeV1AdjustDeveloperBalanceRequest(data: any): GoogleCloudApigeeV1AdjustDeveloperBalanceRequest { return { ...data, adjustment: data["adjustment"] !== undefined ? serializeGoogleTypeMoney(data["adjustment"]) : undefined, }; } function deserializeGoogleCloudApigeeV1AdjustDeveloperBalanceRequest(data: any): GoogleCloudApigeeV1AdjustDeveloperBalanceRequest { return { ...data, adjustment: data["adjustment"] !== undefined ? deserializeGoogleTypeMoney(data["adjustment"]) : undefined, }; } /** * Configuration for the Advanced API Ops add-on. */ export interface GoogleCloudApigeeV1AdvancedApiOpsConfig { /** * Flag that specifies whether the Advanced API Ops add-on is enabled. */ enabled?: boolean; } /** * Reference to a certificate or key/certificate pair. */ export interface GoogleCloudApigeeV1Alias { /** * Resource ID for this alias. Values must match the regular expression * `[^/]{1,255}`. */ alias?: string; /** * Chain of certificates under this alias. */ certsInfo?: GoogleCloudApigeeV1Certificate; /** * Type of alias. */ type?: | "ALIAS_TYPE_UNSPECIFIED" | "CERT" | "KEY_CERT"; } function serializeGoogleCloudApigeeV1Alias(data: any): GoogleCloudApigeeV1Alias { return { ...data, certsInfo: data["certsInfo"] !== undefined ? serializeGoogleCloudApigeeV1Certificate(data["certsInfo"]) : undefined, }; } function deserializeGoogleCloudApigeeV1Alias(data: any): GoogleCloudApigeeV1Alias { return { ...data, certsInfo: data["certsInfo"] !== undefined ? deserializeGoogleCloudApigeeV1Certificate(data["certsInfo"]) : undefined, }; } export interface GoogleCloudApigeeV1AliasRevisionConfig { /** * Location of the alias file. For example, a Google Cloud Storage URI. */ location?: string; /** * Name of the alias revision included in the keystore in the following * format: * `organizations/{org}/environments/{env}/keystores/{keystore}/aliases/{alias}/revisions/{rev}` */ name?: string; type?: | "ALIAS_TYPE_UNSPECIFIED" | "CERT" | "KEY_CERT"; } /** * Configuration for the Analytics add-on. */ export interface GoogleCloudApigeeV1AnalyticsConfig { /** * Whether the Analytics add-on is enabled. */ enabled?: boolean; /** * Output only. Time at which the Analytics add-on expires in milliseconds * since epoch. If unspecified, the add-on will never expire. */ readonly expireTimeMillis?: bigint; /** * Output only. The state of the Analytics add-on. */ readonly state?: | "ADDON_STATE_UNSPECIFIED" | "ENABLING" | "ENABLED" | "DISABLING" | "DISABLED"; /** * Output only. The latest update time. */ readonly updateTime?: Date; } /** * `ApiCategory` represents an API category. [Catalog * items](/apigee/docs/reference/apis/apigee/rest/v1/organizations.sites.apidocs) * can be tagged with API categories; users viewing the API catalog in the * portal will have the option to browse the catalog by category. */ export interface GoogleCloudApigeeV1ApiCategory { /** * ID of the category (a UUID). */ id?: string; /** * Name of the category. */ name?: string; /** * Name of the portal. */ siteId?: string; /** * Time the category was last modified in milliseconds since epoch. */ updateTime?: bigint; } function serializeGoogleCloudApigeeV1ApiCategory(data: any): GoogleCloudApigeeV1ApiCategory { return { ...data, updateTime: data["updateTime"] !== undefined ? String(data["updateTime"]) : undefined, }; } function deserializeGoogleCloudApigeeV1ApiCategory(data: any): GoogleCloudApigeeV1ApiCategory { return { ...data, updateTime: data["updateTime"] !== undefined ? BigInt(data["updateTime"]) : undefined, }; } /** * The API category resource wrapped with response status, error_code, etc. */ export interface GoogleCloudApigeeV1ApiCategoryResponse { /** * The API category resource. */ data?: GoogleCloudApigeeV1ApiCategory; /** * Unique error code for the request, if any. */ errorCode?: string; /** * Description of the operation. */ message?: string; /** * Unique ID of the request. */ requestId?: string; /** * Status of the operation. */ status?: string; } function serializeGoogleCloudApigeeV1ApiCategoryResponse(data: any): GoogleCloudApigeeV1ApiCategoryResponse { return { ...data, data: data["data"] !== undefined ? serializeGoogleCloudApigeeV1ApiCategory(data["data"]) : undefined, }; } function deserializeGoogleCloudApigeeV1ApiCategoryResponse(data: any): GoogleCloudApigeeV1ApiCategoryResponse { return { ...data, data: data["data"] !== undefined ? deserializeGoogleCloudApigeeV1ApiCategory(data["data"]) : undefined, }; } /** * `ApiDoc` represents an API catalog item. Catalog items are used in two ways * in a portal: - Users can browse and interact with a visual representation of * the API documentation - The `api_product_name` field provides a link to a * backing [API product] * (/apigee/docs/reference/apis/apigee/rest/v1/organizations.apiproducts). * Through this link, portal users can create and manage developer apps linked * to one or more API products. */ export interface GoogleCloudApigeeV1ApiDoc { /** * Optional. Boolean flag that manages user access to the catalog item. When * true, the catalog item has public visibility and can be viewed anonymously; * otherwise, only registered users may view it. Note: when the parent portal * is enrolled in the [audience management * feature](https://cloud.google.com/apigee/docs/api-platform/publish/portal/portal-audience#enrolling_in_the_beta_release_of_the_audience_management_feature), * and this flag is set to false, visibility is set to an indeterminate state * and must be explicitly specified in the management UI (see [Manage the * visibility of an API in your * portal](https://cloud.google.com/apigee/docs/api-platform/publish/portal/publish-apis#visibility)). * Additionally, when enrolled in the audience management feature, updates to * this flag will be ignored as visibility permissions must be updated in the * management UI. */ anonAllowed?: boolean; /** * Required. Immutable. The `name` field of the associated [API * product](/apigee/docs/reference/apis/apigee/rest/v1/organizations.apiproducts). * A portal may have only one catalog item associated with a given API * product. */ apiProductName?: string; /** * Optional. The IDs of the API categories to which this catalog item * belongs. */ categoryIds?: string[]; /** * Optional. Description of the catalog item. Max length is 10,000 * characters. */ description?: string; /** * Optional. Immutable. DEPRECATED: use the `apiProductName` field instead */ edgeAPIProductName?: string; /** * Optional. DEPRECATED: manage documentation through the `getDocumentation` * and `updateDocumentation` methods */ graphqlEndpointUrl?: string; /** * Optional. DEPRECATED: manage documentation through the `getDocumentation` * and `updateDocumentation` methods */ graphqlSchema?: string; /** * Optional. DEPRECATED: manage documentation through the `getDocumentation` * and `updateDocumentation` methods */ graphqlSchemaDisplayName?: string; /** * Output only. The ID of the catalog item. */ readonly id?: bigint; /** * Optional. Location of the image used for the catalog item in the catalog. * This can be either an image with an external URL or a file path for [image * files stored in the * portal](/apigee/docs/api-platform/publish/portal/portal-files"), for * example, `/files/book-tree.jpg`. When specifying the URL of an external * image, the image won't be uploaded to your assets; additionally, loading * the image in the integrated portal will be subject to its availability, * which may be blocked or restricted by [content security * policies](/apigee/docs/api-platform/publish/portal/csp). Max length of file * path is 2,083 characters. */ imageUrl?: string; /** * Output only. Time the catalog item was last modified in milliseconds since * epoch. */ readonly modified?: bigint; /** * Optional. Denotes whether the catalog item is published to the portal or * is in a draft state. When the parent portal is enrolled in the [audience * management * feature](https://cloud.google.com/apigee/docs/api-platform/publish/portal/portal-audience#enrolling_in_the_beta_release_of_the_audience_management_feature), * the visibility can be set to public on creation by setting the anonAllowed * flag to true or further managed in the management UI (see [Manage the * visibility of an API in your * portal](https://cloud.google.com/apigee/docs/api-platform/publish/portal/publish-apis#visibility)) * before it can be visible to any users. If not enrolled in the audience * management feature, the visibility is managed by the `anonAllowed` flag. */ published?: boolean; /** * Optional. Whether a callback URL is required when this catalog item's API * product is enabled in a developer app. When true, a portal user will be * required to input a URL when managing the app (this is typically used for * the app's OAuth flow). */ requireCallbackUrl?: boolean; /** * Output only. The ID of the parent portal. */ readonly siteId?: string; /** * Optional. DEPRECATED: DO NOT USE */ specId?: string; /** * Required. The user-facing name of the catalog item. `title` must be a * non-empty string with a max length of 255 characters. */ title?: string; /** * Optional. DEPRECATED: use the `published` field instead */ visibility?: boolean; } /** * The documentation for a catalog item. */ export interface GoogleCloudApigeeV1ApiDocDocumentation { /** * Optional. GraphQL documentation. */ graphqlDocumentation?: GoogleCloudApigeeV1GraphqlDocumentation; /** * Optional. OpenAPI Specification documentation. */ oasDocumentation?: GoogleCloudApigeeV1OASDocumentation; } function serializeGoogleCloudApigeeV1ApiDocDocumentation(data: any): GoogleCloudApigeeV1ApiDocDocumentation { return { ...data, graphqlDocumentation: data["graphqlDocumentation"] !== undefined ? serializeGoogleCloudApigeeV1GraphqlDocumentation(data["graphqlDocumentation"]) : undefined, oasDocumentation: data["oasDocumentation"] !== undefined ? serializeGoogleCloudApigeeV1OASDocumentation(data["oasDocumentation"]) : undefined, }; } function deserializeGoogleCloudApigeeV1ApiDocDocumentation(data: any): GoogleCloudApigeeV1ApiDocDocumentation { return { ...data, graphqlDocumentation: data["graphqlDocumentation"] !== undefined ? deserializeGoogleCloudApigeeV1GraphqlDocumentation(data["graphqlDocumentation"]) : undefined, oasDocumentation: data["oasDocumentation"] !== undefined ? deserializeGoogleCloudApigeeV1OASDocumentation(data["oasDocumentation"]) : undefined, }; } /** * The catalog item documentation wrapped with response status, error_code, * etc. */ export interface GoogleCloudApigeeV1ApiDocDocumentationResponse { /** * Output only. The documentation resource. */ readonly data?: GoogleCloudApigeeV1ApiDocDocumentation; /** * Output only. Unique error code for the request, if any. */ readonly errorCode?: string; /** * Output only. Description of the operation. */ readonly message?: string; /** * Output only. Unique ID of the request. */ readonly requestId?: string; /** * Output only. Status of the operation. */ readonly status?: string; } /** * The catalog item resource wrapped with response status, error_code, etc. */ export interface GoogleCloudApigeeV1ApiDocResponse { /** * The catalog item resource. */ data?: GoogleCloudApigeeV1ApiDoc; /** * Unique error code for the request, if any. */ errorCode?: string; /** * Description of the operation. */ message?: string; /** * Unique ID of the request. */ requestId?: string; /** * Status of the operation. */ status?: string; } export interface GoogleCloudApigeeV1ApiProduct { /** * Comma-separated list of API resources to be bundled in the API product. By * default, the resource paths are mapped from the `proxy.pathsuffix` * variable. The proxy path suffix is defined as the URI fragment following * the ProxyEndpoint base path. For example, if the `apiResources` element is * defined to be `/forecastrss` and the base path defined for the API proxy is * `/weather`, then only requests to `/weather/forecastrss` are permitted by * the API product. You can select a specific path, or you can select all * subpaths with the following wildcard: - `/**`: Indicates that all sub-URIs * are included. - `/*` : Indicates that only URIs one level down are * included. By default, / supports the same resources as /** as well as the * base path defined by the API proxy. For example, if the base path of the * API proxy is `/v1/weatherapikey`, then the API product supports requests to * `/v1/weatherapikey` and to any sub-URIs, such as * `/v1/weatherapikey/forecastrss`, `/v1/weatherapikey/region/CA`, and so on. * For more information, see Managing API products. */ apiResources?: string[]; /** * Flag that specifies how API keys are approved to access the APIs defined * by the API product. If set to `manual`, the consumer key is generated and * returned in "pending" state. In this case, the API keys won't work until * they have been explicitly approved. If set to `auto`, the consumer key is * generated and returned in "approved" state and can be used immediately. * **Note:** Typically, `auto` is used to provide access to free or trial API * products that provide limited quota or capabilities. */ approvalType?: string; /** * Array of attributes that may be used to extend the default API product * profile with customer-specific metadata. You can specify a maximum of 18 * attributes. Use this property to specify the access level of the API * product as either `public`, `private`, or `internal`. Only products marked * `public` are available to developers in the Apigee developer portal. For * example, you can set a product to `internal` while it is in development and * then change access to `public` when it is ready to release on the portal. * API products marked as `private` do not appear on the portal, but can be * accessed by external developers. */ attributes?: GoogleCloudApigeeV1Attribute[]; /** * Response only. Creation time of this environment as milliseconds since * epoch. */ createdAt?: bigint; /** * Description of the API product. Include key information about the API * product that is not captured by other fields. */ description?: string; /** * Name displayed in the UI or developer portal to developers registering for * API access. */ displayName?: string; /** * Comma-separated list of environment names to which the API product is * bound. Requests to environments that are not listed are rejected. By * specifying one or more environments, you can bind the resources listed in * the API product to a specific environment, preventing developers from * accessing those resources through API proxies deployed in another * environment. This setting is used, for example, to prevent resources * associated with API proxies in `prod` from being accessed by API proxies * deployed in `test`. */ environments?: string[]; /** * Configuration used to group Apigee proxies or remote services with graphQL * operation name, graphQL operation type and quotas. This grouping allows us * to precisely set quota for a particular combination of graphQL name and * operation type for a particular proxy request. If graphQL name is not set, * this would imply quota will be applied on all graphQL requests matching the * operation type. */ graphqlOperationGroup?: GoogleCloudApigeeV1GraphQLOperationGroup; /** * Optional. Configuration used to group Apigee proxies with gRPC services * and method names. This grouping allows us to set quota for a particular * proxy with the gRPC service name and method. If a method name is not set, * this implies quota and authorization are applied to all gRPC methods * implemented by that proxy for that particular gRPC service. */ grpcOperationGroup?: GoogleCloudApigeeV1GrpcOperationGroup; /** * Response only. Modified time of this environment as milliseconds since * epoch. */ lastModifiedAt?: bigint; /** * Internal name of the API product. Characters you can use in the name are * restricted to: `A-Z0-9._\-$ %`. **Note:** The internal name cannot be * edited when updating the API product. */ name?: string; /** * Configuration used to group Apigee proxies or remote services with * resources, method types, and quotas. The resource refers to the resource * URI (excluding the base path). With this grouping, the API product creator * is able to fine-tune and give precise control over which REST methods have * access to specific resources and how many calls can be made (using the * `quota` setting). **Note:** The `api_resources` setting cannot be specified * for both the API product and operation group; otherwise the call will fail. */ operationGroup?: GoogleCloudApigeeV1OperationGroup; /** * Comma-separated list of API proxy names to which this API product is * bound. By specifying API proxies, you can associate resources in the API * product with specific API proxies, preventing developers from accessing * those resources through other API proxies. Apigee rejects requests to API * proxies that are not listed. **Note:** The API proxy names must already * exist in the specified environment as they will be validated upon creation. */ proxies?: string[]; /** * Number of request messages permitted per app by this API product for the * specified `quotaInterval` and `quotaTimeUnit`. For example, a `quota` of * 50, for a `quotaInterval` of 12 and a `quotaTimeUnit` of hours means 50 * requests are allowed every 12 hours. */ quota?: string; /** * Scope of the quota decides how the quota counter gets applied and evaluate * for quota violation. If the Scope is set as PROXY, then all the operations * defined for the APIproduct that are associated with the same proxy will * share the same quota counter set at the APIproduct level, making it a * global counter at a proxy level. If the Scope is set as OPERATION, then * each operations get the counter set at the API product dedicated, making it * a local counter. Note that, the QuotaCounterScope applies only when an * operation does not have dedicated quota set for itself. */ quotaCounterScope?: | "QUOTA_COUNTER_SCOPE_UNSPECIFIED" | "PROXY" | "OPERATION"; /** * Time interval over which the number of request messages is calculated. */ quotaInterval?: string; /** * Time unit defined for the `quotaInterval`. Valid values include `minute`, * `hour`, `day`, or `month`. */ quotaTimeUnit?: string; /** * Comma-separated list of OAuth scopes that are validated at runtime. Apigee * validates that the scopes in any access token presented match the scopes * defined in the OAuth policy associated with the API product. */ scopes?: string[]; } function serializeGoogleCloudApigeeV1ApiProduct(data: any): GoogleCloudApigeeV1ApiProduct { return { ...data, createdAt: data["createdAt"] !== undefined ? String(data["createdAt"]) : undefined, lastModifiedAt: data["lastModifiedAt"] !== undefined ? String(data["lastModifiedAt"]) : undefined, }; } function deserializeGoogleCloudApigeeV1ApiProduct(data: any): GoogleCloudApigeeV1ApiProduct { return { ...data, createdAt: data["createdAt"] !== undefined ? BigInt(data["createdAt"]) : undefined, lastModifiedAt: data["lastModifiedAt"] !== undefined ? BigInt(data["lastModifiedAt"]) : undefined, }; } /** * APIProductAssociation has the API product and its administrative state * association. */ export interface GoogleCloudApigeeV1APIProductAssociation { /** * API product to be associated with the credential. */ apiproduct?: string; /** * The API product credential associated status. Valid values are `approved` * or `revoked`. */ status?: string; } export interface GoogleCloudApigeeV1ApiProductRef { /** * Name of the API product. */ apiproduct?: string; /** * Status of the API product. Valid values are `approved` or `revoked`. */ status?: string; } /** * Metadata describing the API proxy */ export interface GoogleCloudApigeeV1ApiProxy { /** * Output only. The type of the API proxy. */ readonly apiProxyType?: | "API_PROXY_TYPE_UNSPECIFIED" | "PROGRAMMABLE" | "CONFIGURABLE"; /** * User labels applied to this API Proxy. */ labels?: { [key: string]: string }; /** * Output only. The id of the most recently created revision for this api * proxy. */ readonly latestRevisionId?: string; /** * Output only. Metadata describing the API proxy. */ readonly metaData?: GoogleCloudApigeeV1EntityMetadata; /** * Output only. Name of the API proxy. */ readonly name?: string; /** * Output only. Whether this proxy is read-only. A read-only proxy cannot * have new revisions created through calls to CreateApiProxyRevision. A proxy * is read-only if it was generated by an archive. */ readonly readOnly?: boolean; /** * Output only. List of revisions defined for the API proxy. */ readonly revision?: string[]; } /** * API proxy revision. */ export interface GoogleCloudApigeeV1ApiProxyRevision { /** * Output only. The archive that generated this proxy revision. This field is * only present on proxy revisions that were generated by an archive. Proxies * generated by archives cannot be updated, deleted, or deployed to other * environments. Format: * `organizations/*\/environments/*\/archiveDeployments/*` */ readonly archive?: string; /** * Base URL of the API proxy. */ basepaths?: string[]; /** * Version of the API proxy configuration schema to which the API proxy * conforms. Currently, the only supported value is 4.0 * (`majorVersion.minorVersion`). This setting may be used in the future to * track the evolution of the API proxy format. */ configurationVersion?: GoogleCloudApigeeV1ConfigVersion; /** * Revision number, app name, and organization for the API proxy. */ contextInfo?: string; /** * Time that the API proxy revision was created in milliseconds since epoch. */ createdAt?: bigint; /** * Description of the API proxy revision. */ description?: string; /** * Human-readable name of the API proxy. */ displayName?: string; /** * Metadata describing the API proxy revision as a key-value map. */ entityMetaDataAsProperties?: { [key: string]: string }; /** * Output only. This field will be marked as true if revision contains any * policies marked as extensible. */ readonly hasExtensiblePolicy?: boolean; /** * List of IntegrationEndpoints in the '/integration-endpoints' directory of * the API proxy. This is a 'manifest' setting designed to provide visibility * into the contents of the API proxy. */ integrationEndpoints?: string[]; /** * Time that the API proxy revision was last modified in milliseconds since * epoch. */ lastModifiedAt?: bigint; /** * Name of the API proxy. */ name?: string; /** * List of policy names included in the API proxy revision.. */ policies?: string[]; /** * List of proxy names included in the API proxy revision. */ proxies?: string[]; /** * List of ProxyEndpoints in the `/proxies` directory of the API proxy. * Typically, this element is included only when the API proxy was created * using the Edge UI. This is a 'manifest' setting designed to provide * visibility into the contents of the API proxy. */ proxyEndpoints?: string[]; /** * List of resource files included in the API proxy revision. */ resourceFiles?: GoogleCloudApigeeV1ResourceFiles; /** * List of the resources included in the API proxy revision formatted as * "{type}://{name}". */ resources?: string[]; /** * API proxy revision. */ revision?: string; /** * List of the shared flows included in the API proxy revision. */ sharedFlows?: string[]; /** * OpenAPI Specification that is associated with the API proxy. The value is * set to a URL or to a path in the specification store. */ spec?: string; /** * List of TargetEndpoints in the `/targets` directory of the API proxy. * Typically, this element is included only when the API proxy was created * using the Edge UI. This is a 'manifest' setting designed to provide * visibility into the contents of the API proxy. */ targetEndpoints?: string[]; /** * List of the targets included in the API proxy revision. */ targets?: string[]; /** * List of TargetServers referenced in any TargetEndpoint in the API proxy. * Typically, you will see this element only when the API proxy was created * using the Edge UI. This is a 'manifest' setting designed to provide * visibility into the contents of the API proxy. */ targetServers?: string[]; /** * List of the teams included in the API proxy revision. */ teams?: string[]; /** * Type. Set to `Application`. Maintained for compatibility with the Apigee * Edge API. */ type?: string; } function serializeGoogleCloudApigeeV1ApiProxyRevision(data: any): GoogleCloudApigeeV1ApiProxyRevision { return { ...data, createdAt: data["createdAt"] !== undefined ? String(data["createdAt"]) : undefined, lastModifiedAt: data["lastModifiedAt"] !== undefined ? String(data["lastModifiedAt"]) : undefined, }; } function deserializeGoogleCloudApigeeV1ApiProxyRevision(data: any): GoogleCloudApigeeV1ApiProxyRevision { return { ...data, createdAt: data["createdAt"] !== undefined ? BigInt(data["createdAt"]) : undefined, lastModifiedAt: data["lastModifiedAt"] !== undefined ? BigInt(data["lastModifiedAt"]) : undefined, }; } /** * Configurations of the API Security add-on. */ export interface GoogleCloudApigeeV1ApiSecurityConfig { /** * Flag that specifies whether the API security add-on is enabled. */ enabled?: boolean; /** * Output only. Time at which the API Security add-on expires in in * milliseconds since epoch. If unspecified, the add-on will never expire. */ readonly expiresAt?: bigint; } /** * Response for * GetApiSecurityRuntimeConfig[EnvironmentService.GetApiSecurityRuntimeConfig]. */ export interface GoogleCloudApigeeV1ApiSecurityRuntimeConfig { /** * A list of up to 5 Cloud Storage Blobs that contain SecurityActions. */ location?: string[]; /** * Name of the environment API Security Runtime configuration resource. * Format: `organizations/{org}/environments/{env}/apiSecurityRuntimeConfig` */ name?: string; /** * Revision ID of the API Security Runtime configuration. The higher the * value, the more recently the configuration was deployed. */ revisionId?: bigint; /** * Unique ID for the API Security Runtime configuration. The ID will only * change if the environment is deleted and recreated. */ uid?: string; /** * Time that the API Security Runtime configuration was updated. */ updateTime?: Date; } function serializeGoogleCloudApigeeV1ApiSecurityRuntimeConfig(data: any): GoogleCloudApigeeV1ApiSecurityRuntimeConfig { return { ...data, revisionId: data["revisionId"] !== undefined ? String(data["revisionId"]) : undefined, updateTime: data["updateTime"] !== undefined ? data["updateTime"].toISOString() : undefined, }; } function deserializeGoogleCloudApigeeV1ApiSecurityRuntimeConfig(data: any): GoogleCloudApigeeV1ApiSecurityRuntimeConfig { return { ...data, revisionId: data["revisionId"] !== undefined ? BigInt(data["revisionId"]) : undefined, updateTime: data["updateTime"] !== undefined ? new Date(data["updateTime"]) : undefined, }; } export interface GoogleCloudApigeeV1App { /** * List of API products associated with the app. */ apiProducts?: GoogleCloudApigeeV1ApiProductRef[]; /** * Name of the AppGroup */ appGroup?: string; /** * ID of the app. */ appId?: string; /** * List of attributes. */ attributes?: GoogleCloudApigeeV1Attribute[]; /** * Callback URL used by OAuth 2.0 authorization servers to communicate * authorization codes back to apps. */ callbackUrl?: string; /** * Name of the company that owns the app. */ companyName?: string; /** * Output only. Unix time when the app was created. */ readonly createdAt?: bigint; /** * Output only. Set of credentials for the app. Credentials are API * key/secret pairs associated with API products. */ readonly credentials?: GoogleCloudApigeeV1Credential[]; /** * Email of the developer. */ developerEmail?: string; /** * ID of the developer. */ developerId?: string; /** * Duration, in milliseconds, of the consumer key that will be generated for * the app. The default value, -1, indicates an infinite validity period. Once * set, the expiration can't be updated. json key: keyExpiresIn */ keyExpiresIn?: bigint; /** * Output only. Last modified time as milliseconds since epoch. */ readonly lastModifiedAt?: bigint; /** * Name of the app. */ name?: string; /** * Scopes to apply to the app. The specified scope names must already exist * on the API product that you associate with the app. */ scopes?: string[]; /** * Status of the credential. */ status?: string; } function serializeGoogleCloudApigeeV1App(data: any): GoogleCloudApigeeV1App { return { ...data, keyExpiresIn: data["keyExpiresIn"] !== undefined ? String(data["keyExpiresIn"]) : undefined, }; } function deserializeGoogleCloudApigeeV1App(data: any): GoogleCloudApigeeV1App { return { ...data, createdAt: data["createdAt"] !== undefined ? BigInt(data["createdAt"]) : undefined, credentials: data["credentials"] !== undefined ? data["credentials"].map((item: any) => (deserializeGoogleCloudApigeeV1Credential(item))) : undefined, keyExpiresIn: data["keyExpiresIn"] !== undefined ? BigInt(data["keyExpiresIn"]) : undefined, lastModifiedAt: data["lastModifiedAt"] !== undefined ? BigInt(data["lastModifiedAt"]) : undefined, }; } /** * AppGroup contains the request/response fields representing the logical * grouping of apps. Note that appgroup_id, create_time and update_time cannot * be changed by the user, and gets updated by the system. The name and the * organization once provided cannot be edited subsequently. */ export interface GoogleCloudApigeeV1AppGroup { /** * Output only. Internal identifier that cannot be edited */ readonly appGroupId?: string; /** * A list of attributes */ attributes?: GoogleCloudApigeeV1Attribute[]; /** * channel identifier identifies the owner maintaing this grouping. */ channelId?: string; /** * A reference to the associated storefront/marketplace. */ channelUri?: string; /** * Output only. Created time as milliseconds since epoch. */ readonly createdAt?: bigint; /** * app group name displayed in the UI */ displayName?: string; /** * Output only. Modified time as milliseconds since epoch. */ readonly lastModifiedAt?: bigint; /** * Immutable. Name of the AppGroup. Characters you can use in the name are * restricted to: A-Z0-9._\-$ %. */ name?: string; /** * Immutable. the org the app group is created */ organization?: string; /** * Valid values are `active` or `inactive`. Note that the status of the * AppGroup should be updated via UpdateAppGroupRequest by setting the action * as `active` or `inactive`. */ status?: string; } /** * Response for [GetAppGroupApp].[AppGroupApps.GetAppGroupApp], * [CreateAppGroupAppRequest].[AppGroupApp.CreateAppGroupAppRequest] and * [DeleteAppGroupApp].[AppGroupApp.DeleteAppGroupApp] */ export interface GoogleCloudApigeeV1AppGroupApp { /** * List of API products associated with the AppGroup app. */ apiProducts?: string[]; /** * Immutable. Name of the parent AppGroup whose resource name format is of * syntax (organizations/*\/appgroups/*). */ appGroup?: string; /** * Immutable. ID of the AppGroup app. */ appId?: string; /** * List of attributes for the AppGroup app. */ attributes?: GoogleCloudApigeeV1Attribute[]; /** * Callback URL used by OAuth 2.0 authorization servers to communicate * authorization codes back to AppGroup apps. */ callbackUrl?: string; /** * Output only. Time the AppGroup app was created in milliseconds since * epoch. */ readonly createdAt?: bigint; /** * Output only. Set of credentials for the AppGroup app consisting of the * consumer key/secret pairs associated with the API products. */ readonly credentials?: GoogleCloudApigeeV1Credential[]; /** * Immutable. Expiration time, in seconds, for the consumer key that is * generated for the AppGroup app. If not set or left to the default value of * `-1`, the API key never expires. The expiration time can't be updated after * it is set. */ keyExpiresIn?: bigint; /** * Output only. Time the AppGroup app was modified in milliseconds since * epoch. */ readonly lastModifiedAt?: bigint; /** * Immutable. Name of the AppGroup app whose resource name format is of * syntax (organizations/*\/appgroups/*\/apps/*). */ name?: string; /** * Scopes to apply to the AppGroup app. The specified scopes must already * exist for the API product that you associate with the AppGroup app. */ scopes?: string[]; /** * Status of the App. Valid values include `approved` or `revoked`. */ status?: string; } function serializeGoogleCloudApigeeV1AppGroupApp(data: any): GoogleCloudApigeeV1AppGroupApp { return { ...data, keyExpiresIn: data["keyExpiresIn"] !== undefined ? String(data["keyExpiresIn"]) : undefined, }; } function deserializeGoogleCloudApigeeV1AppGroupApp(data: any): GoogleCloudApigeeV1AppGroupApp { return { ...data, createdAt: data["createdAt"] !== undefined ? BigInt(data["createdAt"]) : undefined, credentials: data["credentials"] !== undefined ? data["credentials"].map((item: any) => (deserializeGoogleCloudApigeeV1Credential(item))) : undefined, keyExpiresIn: data["keyExpiresIn"] !== undefined ? BigInt(data["keyExpiresIn"]) : undefined, lastModifiedAt: data["lastModifiedAt"] !== undefined ? BigInt(data["lastModifiedAt"]) : undefined, }; } /** * AppGroupAppKey contains all the information associated with the credentials. */ export interface GoogleCloudApigeeV1AppGroupAppKey { /** * Output only. List of API products and its status for which the credential * can be used. **Note**: Use UpdateAppGroupAppKeyApiProductRequest API to * make the association after the consumer key and secret are created. */ readonly apiProducts?: GoogleCloudApigeeV1APIProductAssociation[]; /** * List of attributes associated with the credential. */ attributes?: GoogleCloudApigeeV1Attribute[]; /** * Immutable. Consumer key. */ consumerKey?: string; /** * Secret key. */ consumerSecret?: string; /** * Output only. Time the AppGroup app expires in milliseconds since epoch. */ readonly expiresAt?: bigint; /** * Immutable. Expiration time, in seconds, for the consumer key. If not set * or left to the default value of `-1`, the API key never expires. The * expiration time can't be updated after it is set. */ expiresInSeconds?: bigint; /** * Output only. Time the AppGroup app was created in milliseconds since * epoch. */ readonly issuedAt?: bigint; /** * Scopes to apply to the app. The specified scope names must already be * defined for the API product that you associate with the app. */ scopes?: string[]; /** * Status of the credential. Valid values include `approved` or `revoked`. */ status?: string; } function serializeGoogleCloudApigeeV1AppGroupAppKey(data: any): GoogleCloudApigeeV1AppGroupAppKey { return { ...data, expiresInSeconds: data["expiresInSeconds"] !== undefined ? String(data["expiresInSeconds"]) : undefined, }; } function deserializeGoogleCloudApigeeV1AppGroupAppKey(data: any): GoogleCloudApigeeV1AppGroupAppKey { return { ...data, expiresAt: data["expiresAt"] !== undefined ? BigInt(data["expiresAt"]) : undefined, expiresInSeconds: data["expiresInSeconds"] !== undefined ? BigInt(data["expiresInSeconds"]) : undefined, issuedAt: data["issuedAt"] !== undefined ? BigInt(data["issuedAt"]) : undefined, }; } /** * Archive Deployment information. */ export interface GoogleCloudApigeeV1ArchiveDeployment { /** * Output only. The time at which the Archive Deployment was created in * milliseconds since the epoch. */ readonly createdAt?: bigint; /** * Input only. The Google Cloud Storage signed URL returned from * GenerateUploadUrl and used to upload the Archive zip file. */ gcsUri?: string; /** * User-supplied key-value pairs used to organize ArchiveDeployments. Label * keys must be between 1 and 63 characters long, have a UTF-8 encoding of * maximum 128 bytes, and must conform to the following PCRE regular * expression: \p{Ll}\p{Lo}{0,62} Label values must be between 1 and 63 * characters long, have a UTF-8 encoding of maximum 128 bytes, and must * conform to the following PCRE regular expression: * [\p{Ll}\p{Lo}\p{N}_-]{0,63} No more than 64 labels can be associated with a * given store. */ labels?: { [key: string]: string }; /** * Name of the Archive Deployment in the following format: * `organizations/{org}/environments/{env}/archiveDeployments/{id}`. */ name?: string; /** * Output only. A reference to the LRO that created this Archive Deployment * in the following format: `organizations/{org}/operations/{id}` */ readonly operation?: string; /** * Output only. The time at which the Archive Deployment was updated in * milliseconds since the epoch. */ readonly updatedAt?: bigint; } export interface GoogleCloudApigeeV1AsyncQuery { /** * Creation time of the query. */ created?: string; /** * Hostname is available only when query is executed at host level. */ envgroupHostname?: string; /** * Error is set when query fails. */ error?: string; /** * ExecutionTime is available only after the query is completed. */ executionTime?: string; /** * Asynchronous Query Name. */ name?: string; /** * Contains information like metrics, dimenstions etc of the AsyncQuery. */ queryParams?: GoogleCloudApigeeV1QueryMetadata; /** * Asynchronous Report ID. */ reportDefinitionId?: string; /** * Result is available only after the query is completed. */ result?: GoogleCloudApigeeV1AsyncQueryResult; /** * ResultFileSize is available only after the query is completed. */ resultFileSize?: string; /** * ResultRows is available only after the query is completed. */ resultRows?: bigint; /** * Self link of the query. Example: * `/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd` * or following format if query is running at host level: * `/organizations/myorg/hostQueries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd` */ self?: string; /** * Query state could be "enqueued", "running", "completed", "failed". */ state?: string; /** * Last updated timestamp for the query. */ updated?: string; } function serializeGoogleCloudApigeeV1AsyncQuery(data: any): GoogleCloudApigeeV1AsyncQuery { return { ...data, resultRows: data["resultRows"] !== undefined ? String(data["resultRows"]) : undefined, }; } function deserializeGoogleCloudApigeeV1AsyncQuery(data: any): GoogleCloudApigeeV1AsyncQuery { return { ...data, resultRows: data["resultRows"] !== undefined ? BigInt(data["resultRows"]) : undefined, }; } export interface GoogleCloudApigeeV1AsyncQueryResult { /** * Query result will be unaccessable after this time. */ expires?: string; /** * Self link of the query results. Example: * `/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result` * or following format if query is running at host level: * `/organizations/myorg/hostQueries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result` */ self?: string; } export interface GoogleCloudApigeeV1AsyncQueryResultView { /** * Error code when there is a failure. */ code?: number; /** * Error message when there is a failure. */ error?: string; /** * Metadata contains information like metrics, dimenstions etc of the * AsyncQuery. */ metadata?: GoogleCloudApigeeV1QueryMetadata; /** * Rows of query result. Each row is a JSON object. Example: * {sum(message_count): 1, developer_app: "(not set)",…} */ rows?: any[]; /** * State of retrieving ResultView. */ state?: string; } /** * Key-value pair to store extra metadata. */ export interface GoogleCloudApigeeV1Attribute { /** * API key of the attribute. */ name?: string; /** * Value of the attribute. */ value?: string; } export interface GoogleCloudApigeeV1Attributes { /** * List of attributes. */ attribute?: GoogleCloudApigeeV1Attribute[]; } /** * Request for BatchComputeSecurityAssessmentResults. */ export interface GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequest { /** * Include only these resources. */ include?: GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestResourceArray; /** * Include all resources under the scope. */ includeAllResources?: GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestIncludeAll; /** * Optional. The maximum number of results to return. The service may return * fewer than this value. If unspecified, at most 50 results will be returned. */ pageSize?: number; /** * Optional. A page token, received from a previous * `BatchComputeSecurityAssessmentResults` call. Provide this to retrieve the * subsequent page. */ pageToken?: string; /** * Required. Name of the profile that is used for computation. */ profile?: string; /** * Required. Scope of the resources for the computation. For Apigee, the * environment is the scope of the resources. */ scope?: string; } /** * Message for include_all option. */ export interface GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestIncludeAll { } /** * An array of resource messages. */ export interface GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestResourceArray { /** * Required. The array of resources. For Apigee, the proxies are resources. */ resources?: GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestResourceArrayResource[]; } /** * Resource for which we are computing security assessment. */ export interface GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestResourceArrayResource { /** * Required. Name of this resource. */ name?: string; /** * Required. Type of this resource. */ type?: | "RESOURCE_TYPE_UNSPECIFIED" | "API_PROXY"; } /** * Response for BatchComputeSecurityAssessmentResults. */ export interface GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsResponse { /** * The time of the assessment api call. */ assessmentTime?: Date; /** * A token that can be sent as `page_token` to retrieve the next page. If * this field is blank, there are no subsequent pages. */ nextPageToken?: string; /** * Default sort order is by resource name in alphabetic order. */ securityAssessmentResults?: GoogleCloudApigeeV1SecurityAssessmentResult[]; } function serializeGoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsResponse(data: any): GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsResponse { return { ...data, assessmentTime: data["assessmentTime"] !== undefined ? data["assessmentTime"].toISOString() : undefined, securityAssessmentResults: data["securityAssessmentResults"] !== undefined ? data["securityAssessmentResults"].map((item: any) => (serializeGoogleCloudApigeeV1SecurityAssessmentResult(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsResponse(data: any): GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsResponse { return { ...data, assessmentTime: data["assessmentTime"] !== undefined ? new Date(data["assessmentTime"]) : undefined, securityAssessmentResults: data["securityAssessmentResults"] !== undefined ? data["securityAssessmentResults"].map((item: any) => (deserializeGoogleCloudApigeeV1SecurityAssessmentResult(item))) : undefined, }; } /** * Request for BatchUpdateSecurityIncident. */ export interface GoogleCloudApigeeV1BatchUpdateSecurityIncidentsRequest { /** * Optional. Required. The request message specifying the resources to * update. A maximum of 1000 can be modified in a batch. */ requests?: GoogleCloudApigeeV1UpdateSecurityIncidentRequest[]; } function serializeGoogleCloudApigeeV1BatchUpdateSecurityIncidentsRequest(data: any): GoogleCloudApigeeV1BatchUpdateSecurityIncidentsRequest { return { ...data, requests: data["requests"] !== undefined ? data["requests"].map((item: any) => (serializeGoogleCloudApigeeV1UpdateSecurityIncidentRequest(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1BatchUpdateSecurityIncidentsRequest(data: any): GoogleCloudApigeeV1BatchUpdateSecurityIncidentsRequest { return { ...data, requests: data["requests"] !== undefined ? data["requests"].map((item: any) => (deserializeGoogleCloudApigeeV1UpdateSecurityIncidentRequest(item))) : undefined, }; } /** * Response for BatchUpdateSecurityIncident. */ export interface GoogleCloudApigeeV1BatchUpdateSecurityIncidentsResponse { /** * Output only. Updated security incidents */ readonly securityIncidents?: GoogleCloudApigeeV1SecurityIncident[]; } /** * CanaryEvaluation represents the canary analysis between two versions of the * runtime that is serving requests. */ export interface GoogleCloudApigeeV1CanaryEvaluation { /** * Required. The stable version that is serving requests. */ control?: string; /** * Output only. Create time of the canary evaluation. */ readonly createTime?: Date; /** * Required. End time for the evaluation's analysis. */ endTime?: Date; /** * Required. Labels used to filter the metrics used for a canary evaluation. */ metricLabels?: GoogleCloudApigeeV1CanaryEvaluationMetricLabels; /** * Output only. Name of the canary evalution. */ readonly name?: string; /** * Required. Start time for the canary evaluation's analysis. */ startTime?: Date; /** * Output only. The current state of the canary evaluation. */ readonly state?: | "STATE_UNSPECIFIED" | "RUNNING" | "SUCCEEDED"; /** * Required. The newer version that is serving requests. */ treatment?: string; /** * Output only. The resulting verdict of the canary evaluations: NONE, PASS, * or FAIL. */ readonly verdict?: | "VERDICT_UNSPECIFIED" | "NONE" | "FAIL" | "PASS"; } function serializeGoogleCloudApigeeV1CanaryEvaluation(data: any): GoogleCloudApigeeV1CanaryEvaluation { return { ...data, endTime: data["endTime"] !== undefined ? data["endTime"].toISOString() : undefined, startTime: data["startTime"] !== undefined ? data["startTime"].toISOString() : undefined, }; } function deserializeGoogleCloudApigeeV1CanaryEvaluation(data: any): GoogleCloudApigeeV1CanaryEvaluation { return { ...data, createTime: data["createTime"] !== undefined ? new Date(data["createTime"]) : undefined, endTime: data["endTime"] !== undefined ? new Date(data["endTime"]) : undefined, startTime: data["startTime"] !== undefined ? new Date(data["startTime"]) : undefined, }; } /** * Labels that can be used to filter Apigee metrics. */ export interface GoogleCloudApigeeV1CanaryEvaluationMetricLabels { /** * The environment ID associated with the metrics. */ env?: string; /** * Required. The instance ID associated with the metrics. In Apigee Hybrid, * the value is configured during installation. */ instance_id?: string; /** * Required. The location associated with the metrics. */ location?: string; } export interface GoogleCloudApigeeV1Certificate { /** * Chain of certificates under this name. */ certInfo?: GoogleCloudApigeeV1CertInfo[]; } function serializeGoogleCloudApigeeV1Certificate(data: any): GoogleCloudApigeeV1Certificate { return { ...data, certInfo: data["certInfo"] !== undefined ? data["certInfo"].map((item: any) => (serializeGoogleCloudApigeeV1CertInfo(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1Certificate(data: any): GoogleCloudApigeeV1Certificate { return { ...data, certInfo: data["certInfo"] !== undefined ? data["certInfo"].map((item: any) => (deserializeGoogleCloudApigeeV1CertInfo(item))) : undefined, }; } /** * X.509 certificate as defined in RFC 5280. */ export interface GoogleCloudApigeeV1CertInfo { /** * X.509 basic constraints extension. */ basicConstraints?: string; /** * X.509 `notAfter` validity period in milliseconds since epoch. */ expiryDate?: bigint; /** * X.509 issuer. */ issuer?: string; /** * Flag that specifies whether the certificate is valid. Flag is set to `Yes` * if the certificate is valid, `No` if expired, or `Not yet` if not yet * valid. */ isValid?: string; /** * Public key component of the X.509 subject public key info. */ publicKey?: string; /** * X.509 serial number. */ serialNumber?: string; /** * X.509 signatureAlgorithm. */ sigAlgName?: string; /** * X.509 subject. */ subject?: string; /** * X.509 subject alternative names (SANs) extension. */ subjectAlternativeNames?: string[]; /** * X.509 `notBefore` validity period in milliseconds since epoch. */ validFrom?: bigint; /** * X.509 version. */ version?: number; } function serializeGoogleCloudApigeeV1CertInfo(data: any): GoogleCloudApigeeV1CertInfo { return { ...data, expiryDate: data["expiryDate"] !== undefined ? String(data["expiryDate"]) : undefined, validFrom: data["validFrom"] !== undefined ? String(data["validFrom"]) : undefined, }; } function deserializeGoogleCloudApigeeV1CertInfo(data: any): GoogleCloudApigeeV1CertInfo { return { ...data, expiryDate: data["expiryDate"] !== undefined ? BigInt(data["expiryDate"]) : undefined, validFrom: data["validFrom"] !== undefined ? BigInt(data["validFrom"]) : undefined, }; } export interface GoogleCloudApigeeV1CommonNameConfig { matchWildCards?: boolean; name?: string; } /** * Request for ComputeEnvironmentScores. */ export interface GoogleCloudApigeeV1ComputeEnvironmentScoresRequest { /** * Optional. Filters are used to filter scored components. Return all the * components if no filter is mentioned. Example: [{ "scorePath": * "/org@myorg/envgroup@myenvgroup/env@myenv/proxies/proxy@myproxy/source" }, * { "scorePath": * "/org@myorg/envgroup@myenvgroup/env@myenv/proxies/proxy@myproxy/target", }] * This will return components with path: * "/org@myorg/envgroup@myenvgroup/env@myenv/proxies/proxy@myproxy/source" OR * "/org@myorg/envgroup@myenvgroup/env@myenv/proxies/proxy@myproxy/target" */ filters?: GoogleCloudApigeeV1ComputeEnvironmentScoresRequestFilter[]; /** * Optional. The maximum number of subcomponents to be returned in a single * page. The service may return fewer than this value. If unspecified, at most * 100 subcomponents will be returned in a single page. */ pageSize?: number; /** * Optional. A token that can be sent as `page_token` to retrieve the next * page. If this field is omitted, there are no subsequent pages. */ pageToken?: string; /** * Required. Time range for score calculation. At most 14 days of scores will * be returned, and both the start and end dates must be within the last 90 * days. */ timeRange?: GoogleTypeInterval; } function serializeGoogleCloudApigeeV1ComputeEnvironmentScoresRequest(data: any): GoogleCloudApigeeV1ComputeEnvironmentScoresRequest { return { ...data, timeRange: data["timeRange"] !== undefined ? serializeGoogleTypeInterval(data["timeRange"]) : undefined, }; } function deserializeGoogleCloudApigeeV1ComputeEnvironmentScoresRequest(data: any): GoogleCloudApigeeV1ComputeEnvironmentScoresRequest { return { ...data, timeRange: data["timeRange"] !== undefined ? deserializeGoogleTypeInterval(data["timeRange"]) : undefined, }; } /** * Filter scores by component path. Used custom filter instead of AIP-160 as * the use cases are highly constrained and predictable. */ export interface GoogleCloudApigeeV1ComputeEnvironmentScoresRequestFilter { /** * Optional. Return scores for this component. Example: * "/org@myorg/envgroup@myenvgroup/env@myenv/proxies/proxy@myproxy/source" */ scorePath?: string; } /** * Response for ComputeEnvironmentScores. */ export interface GoogleCloudApigeeV1ComputeEnvironmentScoresResponse { /** * A page token, received from a previous `ComputeScore` call. Provide this * to retrieve the subsequent page. */ nextPageToken?: string; /** * List of scores. One score per day. */ scores?: GoogleCloudApigeeV1Score[]; } function serializeGoogleCloudApigeeV1ComputeEnvironmentScoresResponse(data: any): GoogleCloudApigeeV1ComputeEnvironmentScoresResponse { return { ...data, scores: data["scores"] !== undefined ? data["scores"].map((item: any) => (serializeGoogleCloudApigeeV1Score(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1ComputeEnvironmentScoresResponse(data: any): GoogleCloudApigeeV1ComputeEnvironmentScoresResponse { return { ...data, scores: data["scores"] !== undefined ? data["scores"].map((item: any) => (deserializeGoogleCloudApigeeV1Score(item))) : undefined, }; } /** * Version of the API proxy configuration schema. Currently, only 4.0 is * supported. */ export interface GoogleCloudApigeeV1ConfigVersion { /** * Major version of the API proxy configuration schema. */ majorVersion?: number; /** * Minor version of the API proxy configuration schema. */ minorVersion?: number; } /** * Configuration for the Connectors Platform add-on. */ export interface GoogleCloudApigeeV1ConnectorsPlatformConfig { /** * Flag that specifies whether the Connectors Platform add-on is enabled. */ enabled?: boolean; /** * Output only. Time at which the Connectors Platform add-on expires in * milliseconds since epoch. If unspecified, the add-on will never expire. */ readonly expiresAt?: bigint; } /** * ControlPlaneAccess is the request body and response body of * UpdateControlPlaneAccess. and the response body of GetControlPlaneAccess. The * input identities contains an array of service accounts to grant access to the * respective control plane resource, with each service account specified using * the following format: `serviceAccount:`***service-account-name***. The * ***service-account-name*** is formatted like an email address. For example: * `my-control-plane-service_account@my_project_id.iam.gserviceaccount.com` You * might specify multiple service accounts, for example, if you have multiple * environments and wish to assign a unique service account to each one. */ export interface GoogleCloudApigeeV1ControlPlaneAccess { /** * Optional. Array of service accounts authorized to publish analytics data * to the control plane (for the Message Processor component). */ analyticsPublisherIdentities?: string[]; /** * Identifier. The resource name of the ControlPlaneAccess. Format: * "organizations/{org}/controlPlaneAccess" */ name?: string; /** * Optional. Array of service accounts to grant access to control plane * resources (for the Synchronizer component). The service accounts must have * **Apigee Synchronizer Manager** role. See also [Create service * accounts](https://cloud.google.com/apigee/docs/hybrid/latest/sa-about#create-the-service-accounts). */ synchronizerIdentities?: string[]; } export interface GoogleCloudApigeeV1Credential { /** * List of API products this credential can be used for. */ apiProducts?: GoogleCloudApigeeV1ApiProductRef[]; /** * List of attributes associated with this credential. */ attributes?: GoogleCloudApigeeV1Attribute[]; /** * Consumer key. */ consumerKey?: string; /** * Secret key. */ consumerSecret?: string; /** * Time the credential will expire in milliseconds since epoch. */ expiresAt?: bigint; /** * Time the credential was issued in milliseconds since epoch. */ issuedAt?: bigint; /** * List of scopes to apply to the app. Specified scopes must already exist on * the API product that you associate with the app. */ scopes?: string[]; /** * Status of the credential. Valid values include `approved` or `revoked`. */ status?: string; } function serializeGoogleCloudApigeeV1Credential(data: any): GoogleCloudApigeeV1Credential { return { ...data, expiresAt: data["expiresAt"] !== undefined ? String(data["expiresAt"]) : undefined, issuedAt: data["issuedAt"] !== undefined ? String(data["issuedAt"]) : undefined, }; } function deserializeGoogleCloudApigeeV1Credential(data: any): GoogleCloudApigeeV1Credential { return { ...data, expiresAt: data["expiresAt"] !== undefined ? BigInt(data["expiresAt"]) : undefined, issuedAt: data["issuedAt"] !== undefined ? BigInt(data["issuedAt"]) : undefined, }; } /** * Request for CreditDeveloperBalance. */ export interface GoogleCloudApigeeV1CreditDeveloperBalanceRequest { /** * The amount of money to be credited. The wallet corresponding to the * currency specified within `transaction_amount` will be updated. For * example, if you specified `currency_code` within `transaction_amount` as * "USD", then the amount would be added to the wallet which has the "USD" * currency or if no such wallet exists, a new wallet will be created with the * "USD" currency. */ transactionAmount?: GoogleTypeMoney; /** * Each transaction_id uniquely identifies a credit balance request. If * multiple requests are received with the same transaction_id, only one of * them will be considered. */ transactionId?: string; } function serializeGoogleCloudApigeeV1CreditDeveloperBalanceRequest(data: any): GoogleCloudApigeeV1CreditDeveloperBalanceRequest { return { ...data, transactionAmount: data["transactionAmount"] !== undefined ? serializeGoogleTypeMoney(data["transactionAmount"]) : undefined, }; } function deserializeGoogleCloudApigeeV1CreditDeveloperBalanceRequest(data: any): GoogleCloudApigeeV1CreditDeveloperBalanceRequest { return { ...data, transactionAmount: data["transactionAmount"] !== undefined ? deserializeGoogleTypeMoney(data["transactionAmount"]) : undefined, }; } export interface GoogleCloudApigeeV1CustomReport { /** * This field contains the chart type for the report */ chartType?: string; /** * Legacy field: not used. This field contains a list of comments associated * with custom report */ comments?: string[]; /** * Output only. Unix time when the app was created json key: createdAt */ readonly createdAt?: bigint; /** * This contains the list of dimensions for the report */ dimensions?: string[]; /** * This is the display name for the report */ displayName?: string; /** * Output only. Environment name */ readonly environment?: string; /** * This field contains the filter expression */ filter?: string; /** * Legacy field: not used. Contains the from time for the report */ fromTime?: string; /** * Output only. Modified time of this entity as milliseconds since epoch. * json key: lastModifiedAt */ readonly lastModifiedAt?: bigint; /** * Output only. Last viewed time of this entity as milliseconds since epoch */ readonly lastViewedAt?: bigint; /** * Legacy field: not used This field contains the limit for the result * retrieved */ limit?: string; /** * Required. This contains the list of metrics */ metrics?: GoogleCloudApigeeV1CustomReportMetric[]; /** * Required. Unique identifier for the report T his is a legacy field used to * encode custom report unique id */ name?: string; /** * Legacy field: not used. This field contains the offset for the data */ offset?: string; /** * Output only. Organization name */ readonly organization?: string; /** * This field contains report properties such as ui metadata etc. */ properties?: GoogleCloudApigeeV1ReportProperty[]; /** * Legacy field: not used much. Contains the list of sort by columns */ sortByCols?: string[]; /** * Legacy field: not used much. Contains the sort order for the sort columns */ sortOrder?: string; /** * Legacy field: not used. This field contains a list of tags associated with * custom report */ tags?: string[]; /** * This field contains the time unit of aggregation for the report */ timeUnit?: string; /** * Legacy field: not used. This field contains the top k parameter value for * restricting the result */ topk?: string; /** * Legacy field: not used. Contains the end time for the report */ toTime?: string; } /** * This encapsulates a metric property of the form sum(message_count) where * name is message_count and function is sum */ export interface GoogleCloudApigeeV1CustomReportMetric { /** * aggregate function */ function?: string; /** * name of the metric */ name?: string; } /** * Data collector configuration. */ export interface GoogleCloudApigeeV1DataCollector { /** * Output only. The time at which the data collector was created in * milliseconds since the epoch. */ readonly createdAt?: bigint; /** * A description of the data collector. */ description?: string; /** * Output only. The time at which the Data Collector was last updated in * milliseconds since the epoch. */ readonly lastModifiedAt?: bigint; /** * ID of the data collector. Must begin with `dc_`. */ name?: string; /** * Immutable. The type of data this data collector will collect. */ type?: | "TYPE_UNSPECIFIED" | "INTEGER" | "FLOAT" | "STRING" | "BOOLEAN" | "DATETIME"; } /** * Data collector and its configuration. */ export interface GoogleCloudApigeeV1DataCollectorConfig { /** * Name of the data collector in the following format: * `organizations/{org}/datacollectors/{datacollector}` */ name?: string; /** * Data type accepted by the data collector. */ type?: | "TYPE_UNSPECIFIED" | "INTEGER" | "FLOAT" | "STRING" | "BOOLEAN" | "DATETIME"; } /** * The data store defines the connection to export data repository (Cloud * Storage, BigQuery), including the credentials used to access the data * repository. */ export interface GoogleCloudApigeeV1Datastore { /** * Output only. Datastore create time, in milliseconds since the epoch of * 1970-01-01T00:00:00Z */ readonly createTime?: bigint; /** * Datastore Configurations. */ datastoreConfig?: GoogleCloudApigeeV1DatastoreConfig; /** * Required. Display name in UI */ displayName?: string; /** * Output only. Datastore last update time, in milliseconds since the epoch * of 1970-01-01T00:00:00Z */ readonly lastUpdateTime?: bigint; /** * Output only. Organization that the datastore belongs to */ readonly org?: string; /** * Output only. Resource link of Datastore. Example: * `/organizations/{org}/analytics/datastores/{uuid}` */ readonly self?: string; /** * Destination storage type. Supported types `gcs` or `bigquery`. */ targetType?: string; } /** * Configuration detail for datastore */ export interface GoogleCloudApigeeV1DatastoreConfig { /** * Name of the Cloud Storage bucket. Required for `gcs` target_type. */ bucketName?: string; /** * BigQuery dataset name Required for `bigquery` target_type. */ datasetName?: string; /** * Path of Cloud Storage bucket Required for `gcs` target_type. */ path?: string; /** * Required. Google Cloud project in which the datastore exists */ projectId?: string; /** * Prefix of BigQuery table Required for `bigquery` target_type. */ tablePrefix?: string; } /** * Date range of the data to export. */ export interface GoogleCloudApigeeV1DateRange { /** * Required. End date (exclusive) of the data to export in the format * `yyyy-mm-dd`. The date range ends at 00:00:00 UTC on the end date- which * will not be in the output. */ end?: string; /** * Required. Start date of the data to export in the format `yyyy-mm-dd`. The * date range begins at 00:00:00 UTC on the start date. */ start?: string; } export interface GoogleCloudApigeeV1DebugMask { /** * List of JSON paths that specify the JSON elements to be filtered from JSON * payloads in error flows. */ faultJSONPaths?: string[]; /** * List of XPaths that specify the XML elements to be filtered from XML * payloads in error flows. */ faultXPaths?: string[]; /** * Name of the debug mask. */ name?: string; /** * Map of namespaces to URIs. */ namespaces?: { [key: string]: string }; /** * List of JSON paths that specify the JSON elements to be filtered from JSON * request message payloads. */ requestJSONPaths?: string[]; /** * List of XPaths that specify the XML elements to be filtered from XML * request message payloads. */ requestXPaths?: string[]; /** * List of JSON paths that specify the JSON elements to be filtered from JSON * response message payloads. */ responseJSONPaths?: string[]; /** * List of XPaths that specify the XML elements to be filtered from XML * response message payloads. */ responseXPaths?: string[]; /** * List of variables that should be masked from the debug output. */ variables?: string[]; } export interface GoogleCloudApigeeV1DebugSession { /** * Optional. The number of request to be traced. Min = 1, Max = 15, Default = * 10. */ count?: number; /** * Output only. The first transaction creation timestamp, recorded by UAP. */ readonly createTime?: Date; /** * Optional. A conditional statement which is evaluated against the request * message to determine if it should be traced. Syntax matches that of on API * Proxy bundle flow Condition. */ filter?: string; /** * A unique ID for this DebugSession. */ name?: string; /** * Optional. The time in seconds after which this DebugSession should end. * This value will override the value in query param, if both are provided. */ timeout?: bigint; /** * Optional. The maximum number of bytes captured from the response payload. * Min = 0, Max = 5120, Default = 5120. */ tracesize?: number; /** * Optional. The length of time, in seconds, that this debug session is * valid, starting from when it's received in the control plane. Min = 1, Max * = 15, Default = 10. */ validity?: number; } function serializeGoogleCloudApigeeV1DebugSession(data: any): GoogleCloudApigeeV1DebugSession { return { ...data, timeout: data["timeout"] !== undefined ? String(data["timeout"]) : undefined, }; } function deserializeGoogleCloudApigeeV1DebugSession(data: any): GoogleCloudApigeeV1DebugSession { return { ...data, createTime: data["createTime"] !== undefined ? new Date(data["createTime"]) : undefined, timeout: data["timeout"] !== undefined ? BigInt(data["timeout"]) : undefined, }; } /** * A transaction contains all of the debug information of the entire message * flow of an API call processed by the runtime plane. The information is * collected and recorded at critical points of the message flow in the runtime * apiproxy. */ export interface GoogleCloudApigeeV1DebugSessionTransaction { /** * Flag indicating whether a transaction is completed or not */ completed?: boolean; /** * List of debug data collected by runtime plane at various defined points in * the flow. */ point?: GoogleCloudApigeeV1Point[]; } export interface GoogleCloudApigeeV1DeleteCustomReportResponse { /** * The response contains only a message field. */ message?: string; } /** * Response for certain delete operations. */ export interface GoogleCloudApigeeV1DeleteResponse { /** * Unique error code for the request, if any. */ errorCode?: string; /** * Google Cloud name of deleted resource. */ gcpResource?: string; /** * Description of the operation. */ message?: string; /** * Unique ID of the request. */ requestId?: string; /** * Status of the operation. */ status?: string; } export interface GoogleCloudApigeeV1Deployment { /** * API proxy. */ apiProxy?: string; /** * Time the API proxy was marked `deployed` in the control plane in * millisconds since epoch. */ deployStartTime?: bigint; /** * Environment. */ environment?: string; /** * Errors reported for this deployment. Populated only when state == ERROR. * **Note**: This field is displayed only when viewing deployment status. */ errors?: GoogleRpcStatus[]; /** * Status reported by each runtime instance. **Note**: This field is * displayed only when viewing deployment status. */ instances?: GoogleCloudApigeeV1InstanceDeploymentStatus[]; /** * Status reported by runtime pods. **Note**: **This field is deprecated**. * Runtime versions 1.3 and above report instance level status rather than pod * status. */ pods?: GoogleCloudApigeeV1PodStatus[]; /** * Output only. The type of the deployment (standard or extensible) Deployed * proxy revision will be marked as extensible in following 2 cases. 1. The * deployed proxy revision uses extensible policies. 2. If a environment * supports flowhooks and flow hook is configured. */ readonly proxyDeploymentType?: | "PROXY_DEPLOYMENT_TYPE_UNSPECIFIED" | "STANDARD" | "EXTENSIBLE"; /** * API proxy revision. */ revision?: string; /** * Conflicts in the desired state routing configuration. The presence of * conflicts does not cause the state to be `ERROR`, but it will mean that * some of the deployment's base paths are not routed to its environment. If * the conflicts change, the state will transition to `PROGRESSING` until the * latest configuration is rolled out to all instances. **Note**: This field * is displayed only when viewing deployment status. */ routeConflicts?: GoogleCloudApigeeV1DeploymentChangeReportRoutingConflict[]; /** * The full resource name of Cloud IAM Service Account that this deployment * is using, eg, `projects/-/serviceAccounts/{email}`. */ serviceAccount?: string; /** * Current state of the deployment. **Note**: This field is displayed only * when viewing deployment status. */ state?: | "RUNTIME_STATE_UNSPECIFIED" | "READY" | "PROGRESSING" | "ERROR"; } function serializeGoogleCloudApigeeV1Deployment(data: any): GoogleCloudApigeeV1Deployment { return { ...data, deployStartTime: data["deployStartTime"] !== undefined ? String(data["deployStartTime"]) : undefined, pods: data["pods"] !== undefined ? data["pods"].map((item: any) => (serializeGoogleCloudApigeeV1PodStatus(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1Deployment(data: any): GoogleCloudApigeeV1Deployment { return { ...data, deployStartTime: data["deployStartTime"] !== undefined ? BigInt(data["deployStartTime"]) : undefined, pods: data["pods"] !== undefined ? data["pods"].map((item: any) => (deserializeGoogleCloudApigeeV1PodStatus(item))) : undefined, }; } /** * Response for GenerateDeployChangeReport and GenerateUndeployChangeReport. * This report contains any validation failures that would cause the deployment * to be rejected, as well changes and conflicts in routing that may occur due * to the new deployment. The existence of a routing warning does not * necessarily imply that the deployment request is bad, if the desired state of * the deployment request is to effect a routing change. The primary purposes of * the routing messages are: 1) To inform users of routing changes that may have * an effect on traffic currently being routed to other existing deployments. 2) * To warn users if some base path in the proxy will not receive traffic due to * an existing deployment having already claimed that base path. The presence of * routing conflicts/changes will not cause non-dry-run * DeployApiProxy/UndeployApiProxy requests to be rejected. */ export interface GoogleCloudApigeeV1DeploymentChangeReport { /** * All routing changes that may result from a deployment request. */ routingChanges?: GoogleCloudApigeeV1DeploymentChangeReportRoutingChange[]; /** * All base path conflicts detected for a deployment request. */ routingConflicts?: GoogleCloudApigeeV1DeploymentChangeReportRoutingConflict[]; /** * Validation errors that would cause the deployment change request to be * rejected. */ validationErrors?: GoogleRpcPreconditionFailure; } /** * Describes a potential routing change that may occur as a result of some * deployment operation. */ export interface GoogleCloudApigeeV1DeploymentChangeReportRoutingChange { /** * Human-readable description of this routing change. */ description?: string; /** * Name of the environment group affected by this routing change. */ environmentGroup?: string; /** * Base path/deployment that may stop receiving some traffic. */ fromDeployment?: GoogleCloudApigeeV1DeploymentChangeReportRoutingDeployment; /** * Set to `true` if using sequenced rollout would make this routing change * safer. **Note**: This does not necessarily imply that automated sequenced * rollout mode is supported for the operation. */ shouldSequenceRollout?: boolean; /** * Base path/deployment that may start receiving that traffic. May be null if * no deployment is able to receive the traffic. */ toDeployment?: GoogleCloudApigeeV1DeploymentChangeReportRoutingDeployment; } /** * Describes a routing conflict that may cause a deployment not to receive * traffic at some base path. */ export interface GoogleCloudApigeeV1DeploymentChangeReportRoutingConflict { /** * Existing base path/deployment causing the conflict. */ conflictingDeployment?: GoogleCloudApigeeV1DeploymentChangeReportRoutingDeployment; /** * Human-readable description of this conflict. */ description?: string; /** * Name of the environment group in which this conflict exists. */ environmentGroup?: string; } /** * Tuple representing a base path and the deployment containing it. */ export interface GoogleCloudApigeeV1DeploymentChangeReportRoutingDeployment { /** * Name of the deployed API proxy revision containing the base path. */ apiProxy?: string; /** * Base path receiving traffic. */ basepath?: string; /** * Name of the environment in which the proxy is deployed. */ environment?: string; /** * Name of the deployed API proxy revision containing the base path. */ revision?: string; } /** * NEXT ID: 11 */ export interface GoogleCloudApigeeV1DeploymentConfig { /** * Additional key-value metadata for the deployment. */ attributes?: { [key: string]: string }; /** * Base path where the application will be hosted. Defaults to "/". */ basePath?: string; /** * The list of deployment groups in which this proxy should be deployed. Not * currently populated for shared flows. */ deploymentGroups?: string[]; /** * A mapping from basepaths to proxy endpoint names in this proxy. Not * populated for shared flows. */ endpoints?: { [key: string]: string }; /** * Location of the API proxy bundle as a URI. */ location?: string; /** * Name of the API or shared flow revision to be deployed in the following * format: `organizations/{org}/apis/{api}/revisions/{rev}` or * `organizations/{org}/sharedflows/{sharedflow}/revisions/{rev}` */ name?: string; /** * Unique ID of the API proxy revision. */ proxyUid?: string; /** * The service account identity associated with this deployment. If * non-empty, will be in the following format: * `projects/-/serviceAccounts/{account_email}` */ serviceAccount?: string; /** * Unique ID. The ID will only change if the deployment is deleted and * recreated. */ uid?: string; } /** * DeploymentGroupConfig represents a deployment group that should be present * in a particular environment. */ export interface GoogleCloudApigeeV1DeploymentGroupConfig { /** * Type of the deployment group, which will be either Standard or Extensible. */ deploymentGroupType?: | "DEPLOYMENT_GROUP_TYPE_UNSPECIFIED" | "STANDARD" | "EXTENSIBLE"; /** * Name of the deployment group in the following format: * `organizations/{org}/environments/{env}/deploymentGroups/{group}`. */ name?: string; /** * Revision number which can be used by the runtime to detect if the * deployment group has changed between two versions. */ revisionId?: bigint; /** * Unique ID. The ID will only change if the deployment group is deleted and * recreated. */ uid?: string; } function serializeGoogleCloudApigeeV1DeploymentGroupConfig(data: any): GoogleCloudApigeeV1DeploymentGroupConfig { return { ...data, revisionId: data["revisionId"] !== undefined ? String(data["revisionId"]) : undefined, }; } function deserializeGoogleCloudApigeeV1DeploymentGroupConfig(data: any): GoogleCloudApigeeV1DeploymentGroupConfig { return { ...data, revisionId: data["revisionId"] !== undefined ? BigInt(data["revisionId"]) : undefined, }; } export interface GoogleCloudApigeeV1Developer { /** * Access type. */ accessType?: string; /** * Developer app family. */ appFamily?: string; /** * List of apps associated with the developer. */ apps?: string[]; /** * Optional. Developer attributes (name/value pairs). The custom attribute * limit is 18. */ attributes?: GoogleCloudApigeeV1Attribute[]; /** * List of companies associated with the developer. */ companies?: string[]; /** * Output only. Time at which the developer was created in milliseconds since * epoch. */ readonly createdAt?: bigint; /** * ID of the developer. **Note**: IDs are generated internally by Apigee and * are not guaranteed to stay the same over time. */ developerId?: string; /** * Required. Email address of the developer. This value is used to uniquely * identify the developer in Apigee hybrid. Note that the email address has to * be in lowercase only. */ email?: string; /** * Required. First name of the developer. */ firstName?: string; /** * Output only. Time at which the developer was last modified in milliseconds * since epoch. */ readonly lastModifiedAt?: bigint; /** * Required. Last name of the developer. */ lastName?: string; /** * Output only. Name of the Apigee organization in which the developer * resides. */ readonly organizationName?: string; /** * Output only. Status of the developer. Valid values are `active` and * `inactive`. */ readonly status?: string; /** * Required. User name of the developer. Not used by Apigee hybrid. */ userName?: string; } export interface GoogleCloudApigeeV1DeveloperApp { /** * List of API products associated with the developer app. */ apiProducts?: string[]; /** * Developer app family. */ appFamily?: string; /** * ID of the developer app. */ appId?: string; /** * List of attributes for the developer app. */ attributes?: GoogleCloudApigeeV1Attribute[]; /** * Callback URL used by OAuth 2.0 authorization servers to communicate * authorization codes back to developer apps. */ callbackUrl?: string; /** * Output only. Time the developer app was created in milliseconds since * epoch. */ readonly createdAt?: bigint; /** * Output only. Set of credentials for the developer app consisting of the * consumer key/secret pairs associated with the API products. */ readonly credentials?: GoogleCloudApigeeV1Credential[]; /** * ID of the developer. */ developerId?: string; /** * Expiration time, in milliseconds, for the consumer key that is generated * for the developer app. If not set or left to the default value of `-1`, the * API key never expires. The expiration time can't be updated after it is * set. */ keyExpiresIn?: bigint; /** * Output only. Time the developer app was modified in milliseconds since * epoch. */ readonly lastModifiedAt?: bigint; /** * Name of the developer app. */ name?: string; /** * Scopes to apply to the developer app. The specified scopes must already * exist for the API product that you associate with the developer app. */ scopes?: string[]; /** * Status of the credential. Valid values include `approved` or `revoked`. */ status?: string; } function serializeGoogleCloudApigeeV1DeveloperApp(data: any): GoogleCloudApigeeV1DeveloperApp { return { ...data, keyExpiresIn: data["keyExpiresIn"] !== undefined ? String(data["keyExpiresIn"]) : undefined, }; } function deserializeGoogleCloudApigeeV1DeveloperApp(data: any): GoogleCloudApigeeV1DeveloperApp { return { ...data, createdAt: data["createdAt"] !== undefined ? BigInt(data["createdAt"]) : undefined, credentials: data["credentials"] !== undefined ? data["credentials"].map((item: any) => (deserializeGoogleCloudApigeeV1Credential(item))) : undefined, keyExpiresIn: data["keyExpiresIn"] !== undefined ? BigInt(data["keyExpiresIn"]) : undefined, lastModifiedAt: data["lastModifiedAt"] !== undefined ? BigInt(data["lastModifiedAt"]) : undefined, }; } export interface GoogleCloudApigeeV1DeveloperAppKey { /** * List of API products for which the credential can be used. **Note**: Do * not specify the list of API products when creating a consumer key and * secret for a developer app. Instead, use the UpdateDeveloperAppKey API to * make the association after the consumer key and secret are created. */ apiProducts?: any[]; /** * List of attributes associated with the credential. */ attributes?: GoogleCloudApigeeV1Attribute[]; /** * Consumer key. */ consumerKey?: string; /** * Secret key. */ consumerSecret?: string; /** * Time the developer app expires in milliseconds since epoch. */ expiresAt?: bigint; /** * Input only. Expiration time, in seconds, for the consumer key. If not set * or left to the default value of `-1`, the API key never expires. The * expiration time can't be updated after it is set. */ expiresInSeconds?: bigint; /** * Time the developer app was created in milliseconds since epoch. */ issuedAt?: bigint; /** * Scopes to apply to the app. The specified scope names must already be * defined for the API product that you associate with the app. */ scopes?: string[]; /** * Status of the credential. Valid values include `approved` or `revoked`. */ status?: string; } function serializeGoogleCloudApigeeV1DeveloperAppKey(data: any): GoogleCloudApigeeV1DeveloperAppKey { return { ...data, expiresAt: data["expiresAt"] !== undefined ? String(data["expiresAt"]) : undefined, expiresInSeconds: data["expiresInSeconds"] !== undefined ? String(data["expiresInSeconds"]) : undefined, issuedAt: data["issuedAt"] !== undefined ? String(data["issuedAt"]) : undefined, }; } function deserializeGoogleCloudApigeeV1DeveloperAppKey(data: any): GoogleCloudApigeeV1DeveloperAppKey { return { ...data, expiresAt: data["expiresAt"] !== undefined ? BigInt(data["expiresAt"]) : undefined, expiresInSeconds: data["expiresInSeconds"] !== undefined ? BigInt(data["expiresInSeconds"]) : undefined, issuedAt: data["issuedAt"] !== undefined ? BigInt(data["issuedAt"]) : undefined, }; } /** * Account balance for the developer. */ export interface GoogleCloudApigeeV1DeveloperBalance { /** * Output only. List of all wallets. Each individual wallet stores the * account balance for a particular currency. */ readonly wallets?: GoogleCloudApigeeV1DeveloperBalanceWallet[]; } /** * Wallet used to manage an account balance for a particular currency. */ export interface GoogleCloudApigeeV1DeveloperBalanceWallet { /** * Current remaining balance of the developer for a particular currency. */ balance?: GoogleTypeMoney; /** * Output only. Time at which the developer last added credit to the account * in milliseconds since epoch. */ readonly lastCreditTime?: bigint; } function serializeGoogleCloudApigeeV1DeveloperBalanceWallet(data: any): GoogleCloudApigeeV1DeveloperBalanceWallet { return { ...data, balance: data["balance"] !== undefined ? serializeGoogleTypeMoney(data["balance"]) : undefined, }; } function deserializeGoogleCloudApigeeV1DeveloperBalanceWallet(data: any): GoogleCloudApigeeV1DeveloperBalanceWallet { return { ...data, balance: data["balance"] !== undefined ? deserializeGoogleTypeMoney(data["balance"]) : undefined, lastCreditTime: data["lastCreditTime"] !== undefined ? BigInt(data["lastCreditTime"]) : undefined, }; } /** * Monetization configuration for the developer. */ export interface GoogleCloudApigeeV1DeveloperMonetizationConfig { /** * Billing type. */ billingType?: | "BILLING_TYPE_UNSPECIFIED" | "PREPAID" | "POSTPAID"; } /** * Structure of a DeveloperSubscription. */ export interface GoogleCloudApigeeV1DeveloperSubscription { /** * Name of the API product for which the developer is purchasing a * subscription. */ apiproduct?: string; /** * Output only. Time when the API product subscription was created in * milliseconds since epoch. */ readonly createdAt?: bigint; /** * Time when the API product subscription ends in milliseconds since epoch. */ endTime?: bigint; /** * Output only. Time when the API product subscription was last modified in * milliseconds since epoch. */ readonly lastModifiedAt?: bigint; /** * Output only. Name of the API product subscription. */ readonly name?: string; /** * Time when the API product subscription starts in milliseconds since epoch. */ startTime?: bigint; } function serializeGoogleCloudApigeeV1DeveloperSubscription(data: any): GoogleCloudApigeeV1DeveloperSubscription { return { ...data, endTime: data["endTime"] !== undefined ? String(data["endTime"]) : undefined, startTime: data["startTime"] !== undefined ? String(data["startTime"]) : undefined, }; } function deserializeGoogleCloudApigeeV1DeveloperSubscription(data: any): GoogleCloudApigeeV1DeveloperSubscription { return { ...data, createdAt: data["createdAt"] !== undefined ? BigInt(data["createdAt"]) : undefined, endTime: data["endTime"] !== undefined ? BigInt(data["endTime"]) : undefined, lastModifiedAt: data["lastModifiedAt"] !== undefined ? BigInt(data["lastModifiedAt"]) : undefined, startTime: data["startTime"] !== undefined ? BigInt(data["startTime"]) : undefined, }; } /** * Encapsulates a metric grouped by dimension. */ export interface GoogleCloudApigeeV1DimensionMetric { /** * Individual dimension names. E.g. ["dim1_name", "dim2_name"]. */ individualNames?: string[]; /** * List of metrics. */ metrics?: GoogleCloudApigeeV1Metric[]; /** * Comma joined dimension names. E.g. "dim1_name,dim2_name". Deprecated. If * name already has comma before join, we may get wrong splits. Please use * individual_names. */ name?: string; } /** * Message to disable an enabled SecurityAction. */ export interface GoogleCloudApigeeV1DisableSecurityActionRequest { } /** * Documentation file contents for a catalog item. */ export interface GoogleCloudApigeeV1DocumentationFile { /** * Required. The file contents. The max size is 4 MB. */ contents?: Uint8Array; /** * Required. A display name for the file, shown in the management UI. Max * length is 255 characters. */ displayName?: string; } function serializeGoogleCloudApigeeV1DocumentationFile(data: any): GoogleCloudApigeeV1DocumentationFile { return { ...data, contents: data["contents"] !== undefined ? encodeBase64(data["contents"]) : undefined, }; } function deserializeGoogleCloudApigeeV1DocumentationFile(data: any): GoogleCloudApigeeV1DocumentationFile { return { ...data, contents: data["contents"] !== undefined ? decodeBase64(data["contents"] as string) : undefined, }; } /** * Message to enable a disabled SecurityAction. */ export interface GoogleCloudApigeeV1EnableSecurityActionRequest { } /** * Apigee endpoint attachment. For more information, see [Southbound networking * patterns] * (https://cloud.google.com/apigee/docs/api-platform/architecture/southbound-networking-patterns-endpoints). */ export interface GoogleCloudApigeeV1EndpointAttachment { /** * Output only. State of the endpoint attachment connection to the service * attachment. */ readonly connectionState?: | "CONNECTION_STATE_UNSPECIFIED" | "UNAVAILABLE" | "PENDING" | "ACCEPTED" | "REJECTED" | "CLOSED" | "FROZEN" | "NEEDS_ATTENTION"; /** * Output only. Host that can be used in either the HTTP target endpoint * directly or as the host in target server. */ readonly host?: string; /** * Required. Location of the endpoint attachment. */ location?: string; /** * Name of the endpoint attachment. Use the following structure in your * request: `organizations/{org}/endpointAttachments/{endpoint_attachment}` */ name?: string; /** * Format: projects/*\/regions/*\/serviceAttachments/* */ serviceAttachment?: string; /** * Output only. State of the endpoint attachment. Values other than `ACTIVE` * mean the resource is not ready to use. */ readonly state?: | "STATE_UNSPECIFIED" | "CREATING" | "ACTIVE" | "DELETING" | "UPDATING"; } /** * EndpointChainingRule specifies the proxies contained in a particular * deployment group, so that other deployment groups can find them in chaining * calls. */ export interface GoogleCloudApigeeV1EndpointChainingRule { /** * The deployment group to target for cross-shard chaining calls to these * proxies. */ deploymentGroup?: string; /** * List of proxy ids which may be found in the given deployment group. */ proxyIds?: string[]; } /** * Metadata common to many entities in this API. */ export interface GoogleCloudApigeeV1EntityMetadata { /** * Time at which the API proxy was created, in milliseconds since epoch. */ createdAt?: bigint; /** * Time at which the API proxy was most recently modified, in milliseconds * since epoch. */ lastModifiedAt?: bigint; /** * The type of entity described */ subType?: string; } function serializeGoogleCloudApigeeV1EntityMetadata(data: any): GoogleCloudApigeeV1EntityMetadata { return { ...data, createdAt: data["createdAt"] !== undefined ? String(data["createdAt"]) : undefined, lastModifiedAt: data["lastModifiedAt"] !== undefined ? String(data["lastModifiedAt"]) : undefined, }; } function deserializeGoogleCloudApigeeV1EntityMetadata(data: any): GoogleCloudApigeeV1EntityMetadata { return { ...data, createdAt: data["createdAt"] !== undefined ? BigInt(data["createdAt"]) : undefined, lastModifiedAt: data["lastModifiedAt"] !== undefined ? BigInt(data["lastModifiedAt"]) : undefined, }; } export interface GoogleCloudApigeeV1Environment { /** * Optional. API Proxy type supported by the environment. The type can be set * when creating the Environment and cannot be changed. */ apiProxyType?: | "API_PROXY_TYPE_UNSPECIFIED" | "PROGRAMMABLE" | "CONFIGURABLE"; /** * Output only. Creation time of this environment as milliseconds since * epoch. */ readonly createdAt?: bigint; /** * Optional. Deployment type supported by the environment. The deployment * type can be set when creating the environment and cannot be changed. When * you enable archive deployment, you will be **prevented from performing** a * [subset of * actions](/apigee/docs/api-platform/local-development/overview#prevented-actions) * within the environment, including: * Managing the deployment of API proxy * or shared flow revisions * Creating, updating, or deleting resource files * * Creating, updating, or deleting target servers */ deploymentType?: | "DEPLOYMENT_TYPE_UNSPECIFIED" | "PROXY" | "ARCHIVE"; /** * Optional. Description of the environment. */ description?: string; /** * Optional. Display name for this environment. */ displayName?: string; /** * Optional. URI of the forward proxy to be applied to the runtime instances * in this environment. Must be in the format of {scheme}://{hostname}:{port}. * Note that the scheme must be one of "http" or "https", and the port must be * supplied. To remove a forward proxy setting, update the field to an empty * value. Note: At this time, PUT operations to add forwardProxyUri to an * existing environment fail if the environment has nodeConfig set up. To * successfully add the forwardProxyUri setting in this case, include the * NodeConfig details with the request. */ forwardProxyUri?: string; hasAttachedFlowHooks?: boolean; /** * Output only. Last modification time of this environment as milliseconds * since epoch. */ readonly lastModifiedAt?: bigint; /** * Required. Name of the environment. Values must match the regular * expression `^[.\\p{Alnum}-_]{1,255}$` */ name?: string; /** * Optional. NodeConfig of the environment. */ nodeConfig?: GoogleCloudApigeeV1NodeConfig; /** * Optional. Key-value pairs that may be used for customizing the * environment. */ properties?: GoogleCloudApigeeV1Properties; /** * Output only. State of the environment. Values other than ACTIVE means the * resource is not ready to use. */ readonly state?: | "STATE_UNSPECIFIED" | "CREATING" | "ACTIVE" | "DELETING" | "UPDATING"; /** * Optional. EnvironmentType selected for the environment. */ type?: | "ENVIRONMENT_TYPE_UNSPECIFIED" | "BASE" | "INTERMEDIATE" | "COMPREHENSIVE"; } function serializeGoogleCloudApigeeV1Environment(data: any): GoogleCloudApigeeV1Environment { return { ...data, nodeConfig: data["nodeConfig"] !== undefined ? serializeGoogleCloudApigeeV1NodeConfig(data["nodeConfig"]) : undefined, }; } function deserializeGoogleCloudApigeeV1Environment(data: any): GoogleCloudApigeeV1Environment { return { ...data, createdAt: data["createdAt"] !== undefined ? BigInt(data["createdAt"]) : undefined, lastModifiedAt: data["lastModifiedAt"] !== undefined ? BigInt(data["lastModifiedAt"]) : undefined, nodeConfig: data["nodeConfig"] !== undefined ? deserializeGoogleCloudApigeeV1NodeConfig(data["nodeConfig"]) : undefined, }; } export interface GoogleCloudApigeeV1EnvironmentConfig { /** * The latest runtime configurations for add-ons. */ addonsConfig?: GoogleCloudApigeeV1RuntimeAddonsConfig; /** * The location for the config blob of API Runtime Control, aka Envoy * Adapter, for op-based authentication as a URI, e.g. a Cloud Storage URI. * This is only used by Envoy-based gateways. */ arcConfigLocation?: string; /** * The algorithm to resolve IP. */ clientIpResolutionConfig?: GoogleCloudApigeeV1EnvironmentConfigClientIPResolutionConfig; /** * Time that the environment configuration was created. */ createTime?: Date; /** * List of data collectors used by the deployments in the environment. */ dataCollectors?: GoogleCloudApigeeV1DataCollectorConfig[]; /** * Debug mask that applies to all deployments in the environment. */ debugMask?: GoogleCloudApigeeV1DebugMask; /** * List of deployment groups in the environment. */ deploymentGroups?: GoogleCloudApigeeV1DeploymentGroupConfig[]; /** * List of deployments in the environment. */ deployments?: GoogleCloudApigeeV1DeploymentConfig[]; /** * Revision ID for environment-scoped resources (e.g. target servers, * keystores) in this config. This ID will increment any time a resource not * scoped to a deployment group changes. */ envScopedRevisionId?: bigint; /** * Feature flags inherited from the organization and environment. */ featureFlags?: { [key: string]: string }; /** * List of flow hooks in the environment. */ flowhooks?: GoogleCloudApigeeV1FlowHookConfig[]; /** * The forward proxy's url to be used by the runtime. When set, runtime will * send requests to the target via the given forward proxy. This is only used * by programmable gateways. */ forwardProxyUri?: string; /** * The location for the gateway config blob as a URI, e.g. a Cloud Storage * URI. This is only used by Envoy-based gateways. */ gatewayConfigLocation?: string; /** * List of keystores in the environment. */ keystores?: GoogleCloudApigeeV1KeystoreConfig[]; /** * Name of the environment configuration in the following format: * `organizations/{org}/environments/{env}/configs/{config}` */ name?: string; /** * Used by the Control plane to add context information to help detect the * source of the document during diagnostics and debugging. */ provider?: string; /** * Name of the PubSub topic for the environment. */ pubsubTopic?: string; /** * List of resource references in the environment. */ resourceReferences?: GoogleCloudApigeeV1ReferenceConfig[]; /** * List of resource versions in the environment. */ resources?: GoogleCloudApigeeV1ResourceConfig[]; /** * Revision ID of the environment configuration. The higher the value, the * more recently the configuration was deployed. */ revisionId?: bigint; /** * DEPRECATED: Use revision_id. */ sequenceNumber?: bigint; /** * List of target servers in the environment. Disabled target servers are not * displayed. */ targets?: GoogleCloudApigeeV1TargetServerConfig[]; /** * Trace configurations. Contains config for the environment and config * overrides for specific API proxies. */ traceConfig?: GoogleCloudApigeeV1RuntimeTraceConfig; /** * Unique ID for the environment configuration. The ID will only change if * the environment is deleted and recreated. */ uid?: string; } function serializeGoogleCloudApigeeV1EnvironmentConfig(data: any): GoogleCloudApigeeV1EnvironmentConfig { return { ...data, createTime: data["createTime"] !== undefined ? data["createTime"].toISOString() : undefined, deploymentGroups: data["deploymentGroups"] !== undefined ? data["deploymentGroups"].map((item: any) => (serializeGoogleCloudApigeeV1DeploymentGroupConfig(item))) : undefined, envScopedRevisionId: data["envScopedRevisionId"] !== undefined ? String(data["envScopedRevisionId"]) : undefined, revisionId: data["revisionId"] !== undefined ? String(data["revisionId"]) : undefined, sequenceNumber: data["sequenceNumber"] !== undefined ? String(data["sequenceNumber"]) : undefined, traceConfig: data["traceConfig"] !== undefined ? serializeGoogleCloudApigeeV1RuntimeTraceConfig(data["traceConfig"]) : undefined, }; } function deserializeGoogleCloudApigeeV1EnvironmentConfig(data: any): GoogleCloudApigeeV1EnvironmentConfig { return { ...data, createTime: data["createTime"] !== undefined ? new Date(data["createTime"]) : undefined, deploymentGroups: data["deploymentGroups"] !== undefined ? data["deploymentGroups"].map((item: any) => (deserializeGoogleCloudApigeeV1DeploymentGroupConfig(item))) : undefined, envScopedRevisionId: data["envScopedRevisionId"] !== undefined ? BigInt(data["envScopedRevisionId"]) : undefined, revisionId: data["revisionId"] !== undefined ? BigInt(data["revisionId"]) : undefined, sequenceNumber: data["sequenceNumber"] !== undefined ? BigInt(data["sequenceNumber"]) : undefined, traceConfig: data["traceConfig"] !== undefined ? deserializeGoogleCloudApigeeV1RuntimeTraceConfig(data["traceConfig"]) : undefined, }; } /** * Configuration for resolving the client ip. */ export interface GoogleCloudApigeeV1EnvironmentConfigClientIPResolutionConfig { /** * Resolves the client ip based on a custom header. */ headerIndexAlgorithm?: GoogleCloudApigeeV1EnvironmentConfigClientIPResolutionConfigHeaderIndexAlgorithm; } /** * Resolves the client ip based on a custom header. */ export interface GoogleCloudApigeeV1EnvironmentConfigClientIPResolutionConfigHeaderIndexAlgorithm { /** * The index of the ip in the header. (By default, value is 0 if missing) */ ipHeaderIndex?: number; /** * The name of the header to extract the client ip from. */ ipHeaderName?: string; } /** * EnvironmentGroup configuration. An environment group is used to group one or * more Apigee environments under a single host name. */ export interface GoogleCloudApigeeV1EnvironmentGroup { /** * Output only. The time at which the environment group was created as * milliseconds since epoch. */ readonly createdAt?: bigint; /** * Required. Host names for this environment group. */ hostnames?: string[]; /** * Output only. The time at which the environment group was last updated as * milliseconds since epoch. */ readonly lastModifiedAt?: bigint; /** * ID of the environment group. */ name?: string; /** * Output only. State of the environment group. Values other than ACTIVE * means the resource is not ready to use. */ readonly state?: | "STATE_UNSPECIFIED" | "CREATING" | "ACTIVE" | "DELETING" | "UPDATING"; } /** * EnvironmentGroupAttachment is a resource which defines an attachment of an * environment to an environment group. */ export interface GoogleCloudApigeeV1EnvironmentGroupAttachment { /** * Output only. The time at which the environment group attachment was * created as milliseconds since epoch. */ readonly createdAt?: bigint; /** * Required. ID of the attached environment. */ environment?: string; /** * Output only. ID of the environment group. */ readonly environmentGroupId?: string; /** * ID of the environment group attachment. */ name?: string; } /** * EnvironmentGroupConfig is a revisioned snapshot of an EnvironmentGroup and * its associated routing rules. */ export interface GoogleCloudApigeeV1EnvironmentGroupConfig { /** * A list of proxies in each deployment group for proxy chaining calls. */ endpointChainingRules?: GoogleCloudApigeeV1EndpointChainingRule[]; /** * Host names for the environment group. */ hostnames?: string[]; /** * When this message appears in the top-level IngressConfig, this field will * be populated in lieu of the inlined routing_rules and hostnames fields. * Some URL for downloading the full EnvironmentGroupConfig for this group. */ location?: string; /** * Name of the environment group in the following format: * `organizations/{org}/envgroups/{envgroup}`. */ name?: string; /** * Revision id that defines the ordering of the EnvironmentGroupConfig * resource. The higher the revision, the more recently the configuration was * deployed. */ revisionId?: bigint; /** * Ordered list of routing rules defining how traffic to this environment * group's hostnames should be routed to different environments. */ routingRules?: GoogleCloudApigeeV1RoutingRule[]; /** * A unique id for the environment group config that will only change if the * environment group is deleted and recreated. */ uid?: string; } function serializeGoogleCloudApigeeV1EnvironmentGroupConfig(data: any): GoogleCloudApigeeV1EnvironmentGroupConfig { return { ...data, revisionId: data["revisionId"] !== undefined ? String(data["revisionId"]) : undefined, routingRules: data["routingRules"] !== undefined ? data["routingRules"].map((item: any) => (serializeGoogleCloudApigeeV1RoutingRule(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1EnvironmentGroupConfig(data: any): GoogleCloudApigeeV1EnvironmentGroupConfig { return { ...data, revisionId: data["revisionId"] !== undefined ? BigInt(data["revisionId"]) : undefined, routingRules: data["routingRules"] !== undefined ? data["routingRules"].map((item: any) => (deserializeGoogleCloudApigeeV1RoutingRule(item))) : undefined, }; } /** * Request for ExpireDeveloperSubscription. */ export interface GoogleCloudApigeeV1ExpireDeveloperSubscriptionRequest { } /** * Details of an export job. */ export interface GoogleCloudApigeeV1Export { /** * Output only. Time the export job was created. */ readonly created?: string; /** * Name of the datastore that is the destination of the export job * [datastore] */ datastoreName?: string; /** * Description of the export job. */ description?: string; /** * Output only. Error is set when export fails */ readonly error?: string; /** * Output only. Execution time for this export job. If the job is still in * progress, it will be set to the amount of time that has elapsed * since`created`, in seconds. Else, it will set to (`updated` - `created`), * in seconds. */ readonly executionTime?: string; /** * Display name of the export job. */ name?: string; /** * Output only. Self link of the export job. A URI that can be used to * retrieve the status of an export job. Example: * `/organizations/myorg/environments/myenv/analytics/exports/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd` */ readonly self?: string; /** * Output only. Status of the export job. Valid values include `enqueued`, * `running`, `completed`, and `failed`. */ readonly state?: string; /** * Output only. Time the export job was last updated. */ readonly updated?: string; } /** * Request body for [CreateExportRequest] */ export interface GoogleCloudApigeeV1ExportRequest { /** * Optional. Delimiter used in the CSV file, if `outputFormat` is set to * `csv`. Defaults to the `,` (comma) character. Supported delimiter * characters include comma (`,`), pipe (`|`), and tab (`\t`). */ csvDelimiter?: string; /** * Required. Name of the preconfigured datastore. */ datastoreName?: string; /** * Required. Date range of the data to export. */ dateRange?: GoogleCloudApigeeV1DateRange; /** * Optional. Description of the export job. */ description?: string; /** * Required. Display name of the export job. */ name?: string; /** * Optional. Output format of the export. Valid values include: `csv` or * `json`. Defaults to `json`. Note: Configure the delimiter for CSV output * using the `csvDelimiter` property. */ outputFormat?: string; } export interface GoogleCloudApigeeV1FlowHook { /** * Optional. Flag that specifies whether execution should continue if the * flow hook throws an exception. Set to `true` to continue execution. Set to * `false` to stop execution if the flow hook throws an exception. Defaults to * `true`. */ continueOnError?: boolean; /** * Description of the flow hook. */ description?: string; /** * Output only. Where in the API call flow the flow hook is invoked. Must be * one of `PreProxyFlowHook`, `PostProxyFlowHook`, `PreTargetFlowHook`, or * `PostTargetFlowHook`. */ readonly flowHookPoint?: string; /** * Shared flow attached to this flow hook, or empty if there is none * attached. */ sharedFlow?: string; } export interface GoogleCloudApigeeV1FlowHookConfig { /** * Flag that specifies whether the flow should abort after an error in the * flow hook. Defaults to `true` (continue on error). */ continueOnError?: boolean; /** * Name of the flow hook in the following format: * `organizations/{org}/environments/{env}/flowhooks/{point}`. Valid `point` * values include: `PreProxyFlowHook`, `PostProxyFlowHook`, * `PreTargetFlowHook`, and `PostTargetFlowHook` */ name?: string; /** * Name of the shared flow to invoke in the following format: * `organizations/{org}/sharedflows/{sharedflow}` */ sharedFlowName?: string; } /** * Request for GenerateDownloadUrl method. */ export interface GoogleCloudApigeeV1GenerateDownloadUrlRequest { } /** * Response for GenerateDownloadUrl method. */ export interface GoogleCloudApigeeV1GenerateDownloadUrlResponse { /** * The Google Cloud Storage signed URL that can be used to download the * Archive zip file. */ downloadUri?: string; } /** * Request for GenerateUploadUrl method. */ export interface GoogleCloudApigeeV1GenerateUploadUrlRequest { } /** * Response for GenerateUploadUrl method. */ export interface GoogleCloudApigeeV1GenerateUploadUrlResponse { /** * The Google Cloud Storage signed URL that can be used to upload a new * Archive zip file. */ uploadUri?: string; } /** * The response for GetAsyncQueryResultUrl */ export interface GoogleCloudApigeeV1GetAsyncQueryResultUrlResponse { /** * The list of Signed URLs generated by the CreateAsyncQuery request */ urls?: GoogleCloudApigeeV1GetAsyncQueryResultUrlResponseURLInfo[]; } function serializeGoogleCloudApigeeV1GetAsyncQueryResultUrlResponse(data: any): GoogleCloudApigeeV1GetAsyncQueryResultUrlResponse { return { ...data, urls: data["urls"] !== undefined ? data["urls"].map((item: any) => (serializeGoogleCloudApigeeV1GetAsyncQueryResultUrlResponseURLInfo(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1GetAsyncQueryResultUrlResponse(data: any): GoogleCloudApigeeV1GetAsyncQueryResultUrlResponse { return { ...data, urls: data["urls"] !== undefined ? data["urls"].map((item: any) => (deserializeGoogleCloudApigeeV1GetAsyncQueryResultUrlResponseURLInfo(item))) : undefined, }; } /** * A Signed URL and the relevant metadata associated with it. */ export interface GoogleCloudApigeeV1GetAsyncQueryResultUrlResponseURLInfo { /** * The MD5 Hash of the JSON data */ md5?: string; /** * The size of the returned file in bytes */ sizeBytes?: bigint; /** * The signed URL of the JSON data. Will be of the form * `https://storage.googleapis.com/example-bucket/cat.jpeg?X-Goog-Algorithm= * GOOG4-RSA-SHA256&X-Goog-Credential=example%40example-project.iam.gserviceaccount * .com%2F20181026%2Fus-central1%2Fstorage%2Fgoog4_request&X-Goog-Date=20181026T18 * 1309Z&X-Goog-Expires=900&X-Goog-SignedHeaders=host&X-Goog-Signature=247a2aa45f16 * 9edf4d187d54e7cc46e4731b1e6273242c4f4c39a1d2507a0e58706e25e3a85a7dbb891d62afa849 * 6def8e260c1db863d9ace85ff0a184b894b117fe46d1225c82f2aa19efd52cf21d3e2022b3b868dc * c1aca2741951ed5bf3bb25a34f5e9316a2841e8ff4c530b22ceaa1c5ce09c7cbb5732631510c2058 * 0e61723f5594de3aea497f195456a2ff2bdd0d13bad47289d8611b6f9cfeef0c46c91a455b94e90a * 66924f722292d21e24d31dcfb38ce0c0f353ffa5a9756fc2a9f2b40bc2113206a81e324fc4fd6823 * a29163fa845c8ae7eca1fcf6e5bb48b3200983c56c5ca81fffb151cca7402beddfc4a76b13344703 * 2ea7abedc098d2eb14a7` */ uri?: string; } function serializeGoogleCloudApigeeV1GetAsyncQueryResultUrlResponseURLInfo(data: any): GoogleCloudApigeeV1GetAsyncQueryResultUrlResponseURLInfo { return { ...data, sizeBytes: data["sizeBytes"] !== undefined ? String(data["sizeBytes"]) : undefined, }; } function deserializeGoogleCloudApigeeV1GetAsyncQueryResultUrlResponseURLInfo(data: any): GoogleCloudApigeeV1GetAsyncQueryResultUrlResponseURLInfo { return { ...data, sizeBytes: data["sizeBytes"] !== undefined ? BigInt(data["sizeBytes"]) : undefined, }; } /** * Request for GetSyncAuthorization. */ export interface GoogleCloudApigeeV1GetSyncAuthorizationRequest { } /** * GraphQL documentation for a catalog item. */ export interface GoogleCloudApigeeV1GraphqlDocumentation { /** * Required. The GraphQL endpoint URI to be queried by API consumers. Max * length is 2,083 characters. */ endpointUri?: string; /** * Required. The documentation file contents for the GraphQL schema. */ schema?: GoogleCloudApigeeV1DocumentationFile; } function serializeGoogleCloudApigeeV1GraphqlDocumentation(data: any): GoogleCloudApigeeV1GraphqlDocumentation { return { ...data, schema: data["schema"] !== undefined ? serializeGoogleCloudApigeeV1DocumentationFile(data["schema"]) : undefined, }; } function deserializeGoogleCloudApigeeV1GraphqlDocumentation(data: any): GoogleCloudApigeeV1GraphqlDocumentation { return { ...data, schema: data["schema"] !== undefined ? deserializeGoogleCloudApigeeV1DocumentationFile(data["schema"]) : undefined, }; } /** * Represents the pairing of GraphQL operation types and the GraphQL operation * name. */ export interface GoogleCloudApigeeV1GraphQLOperation { /** * GraphQL operation name. The name and operation type will be used to apply * quotas. If no name is specified, the quota will be applied to all GraphQL * operations irrespective of their operation names in the payload. */ operation?: string; /** * Required. GraphQL operation types. Valid values include `query` or * `mutation`. **Note**: Apigee does not currently support `subscription` * types. */ operationTypes?: string[]; } /** * Binds the resources in a proxy or remote service with the GraphQL operation * and its associated quota enforcement. */ export interface GoogleCloudApigeeV1GraphQLOperationConfig { /** * Required. Name of the API proxy endpoint or remote service with which the * GraphQL operation and quota are associated. */ apiSource?: string; /** * Custom attributes associated with the operation. */ attributes?: GoogleCloudApigeeV1Attribute[]; /** * Required. List of GraphQL name/operation type pairs for the proxy or * remote service to which quota will be applied. If only operation types are * specified, the quota will be applied to all GraphQL requests irrespective * of the GraphQL name. **Note**: Currently, you can specify only a single * GraphQLOperation. Specifying more than one will cause the operation to * fail. */ operations?: GoogleCloudApigeeV1GraphQLOperation[]; /** * Quota parameters to be enforced for the resources, methods, and API source * combination. If none are specified, quota enforcement will not be done. */ quota?: GoogleCloudApigeeV1Quota; } /** * List of graphQL operation configuration details associated with Apigee API * proxies or remote services. Remote services are non-Apigee proxies, such as * Istio-Envoy. */ export interface GoogleCloudApigeeV1GraphQLOperationGroup { /** * Required. List of operation configurations for either Apigee API proxies * or other remote services that are associated with this API product. */ operationConfigs?: GoogleCloudApigeeV1GraphQLOperationConfig[]; /** * Flag that specifies whether the configuration is for Apigee API proxy or a * remote service. Valid values include `proxy` or `remoteservice`. Defaults * to `proxy`. Set to `proxy` when Apigee API proxies are associated with the * API product. Set to `remoteservice` when non-Apigee proxies like * Istio-Envoy are associated with the API product. */ operationConfigType?: string; } /** * Binds the resources in a proxy or remote service with the gRPC operation and * its associated quota enforcement. */ export interface GoogleCloudApigeeV1GrpcOperationConfig { /** * Required. Name of the API proxy with which the gRPC operation and quota * are associated. */ apiSource?: string; /** * Custom attributes associated with the operation. */ attributes?: GoogleCloudApigeeV1Attribute[]; /** * List of unqualified gRPC method names for the proxy to which quota will be * applied. If this field is empty, the Quota will apply to all operations on * the gRPC service defined on the proxy. Example: Given a proxy that is * configured to serve com.petstore.PetService, the methods * com.petstore.PetService.ListPets and com.petstore.PetService.GetPet would * be specified here as simply ["ListPets", "GetPet"]. */ methods?: string[]; /** * Quota parameters to be enforced for the methods and API source * combination. If none are specified, quota enforcement will not be done. */ quota?: GoogleCloudApigeeV1Quota; /** * Required. gRPC Service name associated to be associated with the API * proxy, on which quota rules can be applied upon. */ service?: string; } /** * List of gRPC operation configuration details associated with Apigee API * proxies. */ export interface GoogleCloudApigeeV1GrpcOperationGroup { /** * Required. List of operation configurations for either Apigee API proxies * that are associated with this API product. */ operationConfigs?: GoogleCloudApigeeV1GrpcOperationConfig[]; } export interface GoogleCloudApigeeV1IngressConfig { /** * List of environment groups in the organization. */ environmentGroups?: GoogleCloudApigeeV1EnvironmentGroupConfig[]; /** * Name of the resource in the following format: * `organizations/{org}/deployedIngressConfig`. */ name?: string; /** * Time at which the IngressConfig revision was created. */ revisionCreateTime?: Date; /** * Revision id that defines the ordering on IngressConfig resources. The * higher the revision, the more recently the configuration was deployed. */ revisionId?: bigint; /** * A unique id for the ingress config that will only change if the * organization is deleted and recreated. */ uid?: string; } function serializeGoogleCloudApigeeV1IngressConfig(data: any): GoogleCloudApigeeV1IngressConfig { return { ...data, environmentGroups: data["environmentGroups"] !== undefined ? data["environmentGroups"].map((item: any) => (serializeGoogleCloudApigeeV1EnvironmentGroupConfig(item))) : undefined, revisionCreateTime: data["revisionCreateTime"] !== undefined ? data["revisionCreateTime"].toISOString() : undefined, revisionId: data["revisionId"] !== undefined ? String(data["revisionId"]) : undefined, }; } function deserializeGoogleCloudApigeeV1IngressConfig(data: any): GoogleCloudApigeeV1IngressConfig { return { ...data, environmentGroups: data["environmentGroups"] !== undefined ? data["environmentGroups"].map((item: any) => (deserializeGoogleCloudApigeeV1EnvironmentGroupConfig(item))) : undefined, revisionCreateTime: data["revisionCreateTime"] !== undefined ? new Date(data["revisionCreateTime"]) : undefined, revisionId: data["revisionId"] !== undefined ? BigInt(data["revisionId"]) : undefined, }; } /** * Apigee runtime instance. */ export interface GoogleCloudApigeeV1Instance { /** * Optional. Access logging configuration enables the access logging feature * at the instance. Apigee customers can enable access logging to ship the * access logs to their own project's cloud logging. */ accessLoggingConfig?: GoogleCloudApigeeV1AccessLoggingConfig; /** * Optional. Customer accept list represents the list of projects (id/number) * on customer side that can privately connect to the service attachment. It * is an optional field which the customers can provide during the instance * creation. By default, the customer project associated with the Apigee * organization will be included to the list. */ consumerAcceptList?: string[]; /** * Output only. Time the instance was created in milliseconds since epoch. */ readonly createdAt?: bigint; /** * Optional. Description of the instance. */ description?: string; /** * Customer Managed Encryption Key (CMEK) used for disk and volume * encryption. If not specified, a Google-Managed encryption key will be used. * Use the following format: * `projects/([^/]+)/locations/([^/]+)/keyRings/([^/]+)/cryptoKeys/([^/]+)` */ diskEncryptionKeyName?: string; /** * Optional. Display name for the instance. */ displayName?: string; /** * Output only. Internal hostname or IP address of the Apigee endpoint used * by clients to connect to the service. */ readonly host?: string; /** * Optional. Comma-separated list of CIDR blocks of length 22 and/or 28 used * to create the Apigee instance. Providing CIDR ranges is optional. You can * provide just /22 or /28 or both (or neither). Ranges you provide should be * freely available as part of a larger named range you have allocated to the * Service Networking peering. If this parameter is not provided, Apigee * automatically requests an available /22 and /28 CIDR block from Service * Networking. Use the /22 CIDR block for configuring your firewall needs to * allow traffic from Apigee. Input formats: `a.b.c.d/22` or `e.f.g.h/28` or * `a.b.c.d/22,e.f.g.h/28` */ ipRange?: string; /** * Output only. Time the instance was last modified in milliseconds since * epoch. */ readonly lastModifiedAt?: bigint; /** * Required. Compute Engine location where the instance resides. */ location?: string; /** * Required. Resource ID of the instance. Values must match the regular * expression `^a-z{0,30}[a-z\d]$`. */ name?: string; /** * Optional. Size of the CIDR block range that will be reserved by the * instance. PAID organizations support `SLASH_16` to `SLASH_20` and defaults * to `SLASH_16`. Evaluation organizations support only `SLASH_23`. */ peeringCidrRange?: | "CIDR_RANGE_UNSPECIFIED" | "SLASH_16" | "SLASH_17" | "SLASH_18" | "SLASH_19" | "SLASH_20" | "SLASH_22" | "SLASH_23"; /** * Output only. Port number of the exposed Apigee endpoint. */ readonly port?: string; /** * Output only. Version of the runtime system running in the instance. The * runtime system is the set of components that serve the API Proxy traffic in * your Environments. */ readonly runtimeVersion?: string; /** * Output only. Resource name of the service attachment created for the * instance in the format: `projects/*\/regions/*\/serviceAttachments/*` * Apigee customers can privately forward traffic to this service attachment * using the PSC endpoints. */ readonly serviceAttachment?: string; /** * Output only. State of the instance. Values other than `ACTIVE` means the * resource is not ready to use. */ readonly state?: | "STATE_UNSPECIFIED" | "CREATING" | "ACTIVE" | "DELETING" | "UPDATING"; } /** * InstanceAttachment represents the installation of an environment onto an * instance. */ export interface GoogleCloudApigeeV1InstanceAttachment { /** * Output only. Time the attachment was created in milliseconds since epoch. */ readonly createdAt?: bigint; /** * ID of the attached environment. */ environment?: string; /** * Output only. ID of the attachment. */ readonly name?: string; } /** * The status of a deployment as reported by a single instance. */ export interface GoogleCloudApigeeV1InstanceDeploymentStatus { /** * Revisions currently deployed in MPs. */ deployedRevisions?: GoogleCloudApigeeV1InstanceDeploymentStatusDeployedRevision[]; /** * Current routes deployed in the ingress routing table. A route which is * missing will appear in `missing_routes`. */ deployedRoutes?: GoogleCloudApigeeV1InstanceDeploymentStatusDeployedRoute[]; /** * ID of the instance reporting the status. */ instance?: string; } /** * Revisions deployed in the MPs. */ export interface GoogleCloudApigeeV1InstanceDeploymentStatusDeployedRevision { /** * Percentage of MP replicas reporting this revision. */ percentage?: number; /** * API proxy revision reported as deployed. */ revision?: string; } /** * Route deployed in the ingress routing table. */ export interface GoogleCloudApigeeV1InstanceDeploymentStatusDeployedRoute { /** * Base path in the routing table. */ basepath?: string; /** * Environment group where this route is installed. */ envgroup?: string; /** * Destination environment. This will be empty if the route is not yet * reported. */ environment?: string; /** * Percentage of ingress replicas reporting this route. */ percentage?: number; } /** * Configuration for the Integration add-on. */ export interface GoogleCloudApigeeV1IntegrationConfig { /** * Flag that specifies whether the Integration add-on is enabled. */ enabled?: boolean; } export interface GoogleCloudApigeeV1KeyAliasReference { /** * Alias ID. Must exist in the keystore referred to by the reference. */ aliasId?: string; /** * Reference name in the following format: * `organizations/{org}/environments/{env}/references/{reference}` */ reference?: string; } /** * Datastore for Certificates and Aliases. */ export interface GoogleCloudApigeeV1Keystore { /** * Output only. Aliases in this keystore. */ readonly aliases?: string[]; /** * Required. Resource ID for this keystore. Values must match the regular * expression `[\w[:space:].-]{1,255}`. */ name?: string; } export interface GoogleCloudApigeeV1KeystoreConfig { /** * Aliases in the keystore. */ aliases?: GoogleCloudApigeeV1AliasRevisionConfig[]; /** * Resource name in the following format: * `organizations/{org}/environments/{env}/keystores/{keystore}` */ name?: string; } /** * Key value map pair where the value represents the data associated with the * corresponding key. **Note**: Supported for Apigee hybrid 1.8.x and higher. */ export interface GoogleCloudApigeeV1KeyValueEntry { /** * Resource URI that can be used to identify the scope of the key value map * entries. */ name?: string; /** * Required. Data or payload that is being retrieved and associated with the * unique key. */ value?: string; } /** * Collection of key/value string pairs. */ export interface GoogleCloudApigeeV1KeyValueMap { /** * Required. Flag that specifies whether entry values will be encrypted. This * field is retained for backward compatibility and the value of encrypted * will always be `true`. Apigee X and hybrid do not support unencrypted key * value maps. */ encrypted?: boolean; /** * Required. ID of the key value map. */ name?: string; } /** * The response for `ListApiCategoriesRequest`. Next ID: 6 */ export interface GoogleCloudApigeeV1ListApiCategoriesResponse { /** * The API category resources. */ data?: GoogleCloudApigeeV1ApiCategory[]; /** * Unique error code for the request, if any. */ errorCode?: string; /** * Description of the operation. */ message?: string; /** * Unique ID of the request. */ requestId?: string; /** * Status of the operation. */ status?: string; } function serializeGoogleCloudApigeeV1ListApiCategoriesResponse(data: any): GoogleCloudApigeeV1ListApiCategoriesResponse { return { ...data, data: data["data"] !== undefined ? data["data"].map((item: any) => (serializeGoogleCloudApigeeV1ApiCategory(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1ListApiCategoriesResponse(data: any): GoogleCloudApigeeV1ListApiCategoriesResponse { return { ...data, data: data["data"] !== undefined ? data["data"].map((item: any) => (deserializeGoogleCloudApigeeV1ApiCategory(item))) : undefined, }; } export interface GoogleCloudApigeeV1ListApiDocsResponse { /** * The catalog item resources. */ data?: GoogleCloudApigeeV1ApiDoc[]; /** * Unique error code for the request, if any. */ errorCode?: string; /** * Description of the operation. */ message?: string; /** * A token, which can be sent as `page_token` to retrieve the next page. If * this field is omitted, there are no subsequent pages. */ nextPageToken?: string; /** * Unique ID of the request. */ requestId?: string; /** * Status of the operation. */ status?: string; } export interface GoogleCloudApigeeV1ListApiProductsResponse { /** * Lists all API product names defined for an organization. */ apiProduct?: GoogleCloudApigeeV1ApiProduct[]; } function serializeGoogleCloudApigeeV1ListApiProductsResponse(data: any): GoogleCloudApigeeV1ListApiProductsResponse { return { ...data, apiProduct: data["apiProduct"] !== undefined ? data["apiProduct"].map((item: any) => (serializeGoogleCloudApigeeV1ApiProduct(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1ListApiProductsResponse(data: any): GoogleCloudApigeeV1ListApiProductsResponse { return { ...data, apiProduct: data["apiProduct"] !== undefined ? data["apiProduct"].map((item: any) => (deserializeGoogleCloudApigeeV1ApiProduct(item))) : undefined, }; } export interface GoogleCloudApigeeV1ListApiProxiesResponse { proxies?: GoogleCloudApigeeV1ApiProxy[]; } /** * Response for ListAppGroupApps */ export interface GoogleCloudApigeeV1ListAppGroupAppsResponse { /** * List of AppGroup apps and their credentials. */ appGroupApps?: GoogleCloudApigeeV1AppGroupApp[]; /** * Token that can be sent as `next_page_token` to retrieve the next page. If * this field is omitted, there are no subsequent pages. */ nextPageToken?: string; } function serializeGoogleCloudApigeeV1ListAppGroupAppsResponse(data: any): GoogleCloudApigeeV1ListAppGroupAppsResponse { return { ...data, appGroupApps: data["appGroupApps"] !== undefined ? data["appGroupApps"].map((item: any) => (serializeGoogleCloudApigeeV1AppGroupApp(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1ListAppGroupAppsResponse(data: any): GoogleCloudApigeeV1ListAppGroupAppsResponse { return { ...data, appGroupApps: data["appGroupApps"] !== undefined ? data["appGroupApps"].map((item: any) => (deserializeGoogleCloudApigeeV1AppGroupApp(item))) : undefined, }; } /** * ListAppGroupsResponse contains the 0 or more AppGroups, along with the * optional page token and the total count of apps. */ export interface GoogleCloudApigeeV1ListAppGroupsResponse { /** * List of AppGroups. */ appGroups?: GoogleCloudApigeeV1AppGroup[]; /** * Token that can be sent as `next_page_token` to retrieve the next page. If * this field is omitted, there are no subsequent pages. */ nextPageToken?: string; /** * Total count of AppGroups. */ totalSize?: number; } export interface GoogleCloudApigeeV1ListAppsResponse { app?: GoogleCloudApigeeV1App[]; /** * Token that can be sent as `next_page_token` to retrieve the next page. If * this field is omitted, there are no subsequent pages. */ nextPageToken?: string; /** * Total count of Apps. */ totalSize?: number; } function serializeGoogleCloudApigeeV1ListAppsResponse(data: any): GoogleCloudApigeeV1ListAppsResponse { return { ...data, app: data["app"] !== undefined ? data["app"].map((item: any) => (serializeGoogleCloudApigeeV1App(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1ListAppsResponse(data: any): GoogleCloudApigeeV1ListAppsResponse { return { ...data, app: data["app"] !== undefined ? data["app"].map((item: any) => (deserializeGoogleCloudApigeeV1App(item))) : undefined, }; } /** * Response for ListArchiveDeployments method. */ export interface GoogleCloudApigeeV1ListArchiveDeploymentsResponse { /** * Archive Deployments in the specified environment. */ archiveDeployments?: GoogleCloudApigeeV1ArchiveDeployment[]; /** * Page token that you can include in a ListArchiveDeployments request to * retrieve the next page. If omitted, no subsequent pages exist. */ nextPageToken?: string; } /** * The response for ListAsyncQueries. */ export interface GoogleCloudApigeeV1ListAsyncQueriesResponse { /** * The asynchronous queries belong to requested resource name. */ queries?: GoogleCloudApigeeV1AsyncQuery[]; } function serializeGoogleCloudApigeeV1ListAsyncQueriesResponse(data: any): GoogleCloudApigeeV1ListAsyncQueriesResponse { return { ...data, queries: data["queries"] !== undefined ? data["queries"].map((item: any) => (serializeGoogleCloudApigeeV1AsyncQuery(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1ListAsyncQueriesResponse(data: any): GoogleCloudApigeeV1ListAsyncQueriesResponse { return { ...data, queries: data["queries"] !== undefined ? data["queries"].map((item: any) => (deserializeGoogleCloudApigeeV1AsyncQuery(item))) : undefined, }; } /** * This message encapsulates a list of custom report definitions */ export interface GoogleCloudApigeeV1ListCustomReportsResponse { qualifier?: GoogleCloudApigeeV1CustomReport[]; } /** * Response for ListDataCollectors. */ export interface GoogleCloudApigeeV1ListDataCollectorsResponse { /** * Data collectors in the specified organization. */ dataCollectors?: GoogleCloudApigeeV1DataCollector[]; /** * Page token that you can include in a ListDataCollectors request to * retrieve the next page. If omitted, no subsequent pages exist. */ nextPageToken?: string; } /** * The response for ListDatastores */ export interface GoogleCloudApigeeV1ListDatastoresResponse { /** * A list of datastores */ datastores?: GoogleCloudApigeeV1Datastore[]; } export interface GoogleCloudApigeeV1ListDebugSessionsResponse { /** * Page token that you can include in a ListDebugSessionsRequest to retrieve * the next page. If omitted, no subsequent pages exist. */ nextPageToken?: string; /** * Session info that includes debug session ID and the first transaction * creation timestamp. */ sessions?: GoogleCloudApigeeV1Session[]; } function serializeGoogleCloudApigeeV1ListDebugSessionsResponse(data: any): GoogleCloudApigeeV1ListDebugSessionsResponse { return { ...data, sessions: data["sessions"] !== undefined ? data["sessions"].map((item: any) => (serializeGoogleCloudApigeeV1Session(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1ListDebugSessionsResponse(data: any): GoogleCloudApigeeV1ListDebugSessionsResponse { return { ...data, sessions: data["sessions"] !== undefined ? data["sessions"].map((item: any) => (deserializeGoogleCloudApigeeV1Session(item))) : undefined, }; } export interface GoogleCloudApigeeV1ListDeploymentsResponse { /** * List of deployments. */ deployments?: GoogleCloudApigeeV1Deployment[]; } function serializeGoogleCloudApigeeV1ListDeploymentsResponse(data: any): GoogleCloudApigeeV1ListDeploymentsResponse { return { ...data, deployments: data["deployments"] !== undefined ? data["deployments"].map((item: any) => (serializeGoogleCloudApigeeV1Deployment(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1ListDeploymentsResponse(data: any): GoogleCloudApigeeV1ListDeploymentsResponse { return { ...data, deployments: data["deployments"] !== undefined ? data["deployments"].map((item: any) => (deserializeGoogleCloudApigeeV1Deployment(item))) : undefined, }; } export interface GoogleCloudApigeeV1ListDeveloperAppsResponse { /** * List of developer apps and their credentials. */ app?: GoogleCloudApigeeV1DeveloperApp[]; } function serializeGoogleCloudApigeeV1ListDeveloperAppsResponse(data: any): GoogleCloudApigeeV1ListDeveloperAppsResponse { return { ...data, app: data["app"] !== undefined ? data["app"].map((item: any) => (serializeGoogleCloudApigeeV1DeveloperApp(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1ListDeveloperAppsResponse(data: any): GoogleCloudApigeeV1ListDeveloperAppsResponse { return { ...data, app: data["app"] !== undefined ? data["app"].map((item: any) => (deserializeGoogleCloudApigeeV1DeveloperApp(item))) : undefined, }; } /** * Response for ListDeveloperSubscriptions. */ export interface GoogleCloudApigeeV1ListDeveloperSubscriptionsResponse { /** * List of all subscriptions. */ developerSubscriptions?: GoogleCloudApigeeV1DeveloperSubscription[]; /** * Value that can be sent as `startKey` to retrieve the next page of content. * If this field is omitted, there are no subsequent pages. */ nextStartKey?: string; } function serializeGoogleCloudApigeeV1ListDeveloperSubscriptionsResponse(data: any): GoogleCloudApigeeV1ListDeveloperSubscriptionsResponse { return { ...data, developerSubscriptions: data["developerSubscriptions"] !== undefined ? data["developerSubscriptions"].map((item: any) => (serializeGoogleCloudApigeeV1DeveloperSubscription(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1ListDeveloperSubscriptionsResponse(data: any): GoogleCloudApigeeV1ListDeveloperSubscriptionsResponse { return { ...data, developerSubscriptions: data["developerSubscriptions"] !== undefined ? data["developerSubscriptions"].map((item: any) => (deserializeGoogleCloudApigeeV1DeveloperSubscription(item))) : undefined, }; } /** * Response for ListEndpointAttachments method. */ export interface GoogleCloudApigeeV1ListEndpointAttachmentsResponse { /** * Endpoint attachments in the specified organization. */ endpointAttachments?: GoogleCloudApigeeV1EndpointAttachment[]; /** * Page token that you can include in an `ListEndpointAttachments` request to * retrieve the next page. If omitted, no subsequent pages exist. */ nextPageToken?: string; } /** * Response for ListEnvironmentGroupAttachments. */ export interface GoogleCloudApigeeV1ListEnvironmentGroupAttachmentsResponse { /** * EnvironmentGroupAttachments for the specified environment group. */ environmentGroupAttachments?: GoogleCloudApigeeV1EnvironmentGroupAttachment[]; /** * Page token that you can include in a ListEnvironmentGroupAttachments * request to retrieve the next page. If omitted, no subsequent pages exist. */ nextPageToken?: string; } /** * Response for ListEnvironmentGroups. */ export interface GoogleCloudApigeeV1ListEnvironmentGroupsResponse { /** * EnvironmentGroups in the specified organization. */ environmentGroups?: GoogleCloudApigeeV1EnvironmentGroup[]; /** * Page token that you can include in a ListEnvironmentGroups request to * retrieve the next page. If omitted, no subsequent pages exist. */ nextPageToken?: string; } /** * Response for ListEnvironmentResources */ export interface GoogleCloudApigeeV1ListEnvironmentResourcesResponse { /** * List of resources files. */ resourceFile?: GoogleCloudApigeeV1ResourceFile[]; } /** * The response for ListExports */ export interface GoogleCloudApigeeV1ListExportsResponse { /** * Details of the export jobs. */ exports?: GoogleCloudApigeeV1Export[]; } export interface GoogleCloudApigeeV1ListHybridIssuersResponse { /** * Lists of hybrid services and its trusted issuer email ids. */ issuers?: GoogleCloudApigeeV1ServiceIssuersMapping[]; } /** * Response for ListInstanceAttachments. */ export interface GoogleCloudApigeeV1ListInstanceAttachmentsResponse { /** * Attachments for the instance. */ attachments?: GoogleCloudApigeeV1InstanceAttachment[]; /** * Page token that you can include in a ListInstanceAttachments request to * retrieve the next page of content. If omitted, no subsequent pages exist. */ nextPageToken?: string; } /** * Response for ListInstances. */ export interface GoogleCloudApigeeV1ListInstancesResponse { /** * Instances in the specified organization. */ instances?: GoogleCloudApigeeV1Instance[]; /** * Page token that you can include in a ListInstance request to retrieve the * next page of content. If omitted, no subsequent pages exist. */ nextPageToken?: string; } /** * The request structure for listing key value map keys and its corresponding * values. */ export interface GoogleCloudApigeeV1ListKeyValueEntriesResponse { /** * One or more key value map keys and values. */ keyValueEntries?: GoogleCloudApigeeV1KeyValueEntry[]; /** * Token that can be sent as `next_page_token` to retrieve the next page. If * this field is omitted, there are no subsequent pages. */ nextPageToken?: string; } /** * Response for ListNatAddresses. */ export interface GoogleCloudApigeeV1ListNatAddressesResponse { /** * List of NAT Addresses for the instance. */ natAddresses?: GoogleCloudApigeeV1NatAddress[]; /** * Page token that you can include in a ListNatAddresses request to retrieve * the next page of content. If omitted, no subsequent pages exist. */ nextPageToken?: string; } export interface GoogleCloudApigeeV1ListOfDevelopersResponse { /** * List of developers. */ developer?: GoogleCloudApigeeV1Developer[]; } export interface GoogleCloudApigeeV1ListOrganizationsResponse { /** * List of Apigee organizations and associated Google Cloud projects. */ organizations?: GoogleCloudApigeeV1OrganizationProjectMapping[]; } /** * Response for ListRatePlans. */ export interface GoogleCloudApigeeV1ListRatePlansResponse { /** * Value that can be sent as `startKey` to retrieve the next page of content. * If this field is omitted, there are no subsequent pages. */ nextStartKey?: string; /** * List of rate plans in an organization. */ ratePlans?: GoogleCloudApigeeV1RatePlan[]; } function serializeGoogleCloudApigeeV1ListRatePlansResponse(data: any): GoogleCloudApigeeV1ListRatePlansResponse { return { ...data, ratePlans: data["ratePlans"] !== undefined ? data["ratePlans"].map((item: any) => (serializeGoogleCloudApigeeV1RatePlan(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1ListRatePlansResponse(data: any): GoogleCloudApigeeV1ListRatePlansResponse { return { ...data, ratePlans: data["ratePlans"] !== undefined ? data["ratePlans"].map((item: any) => (deserializeGoogleCloudApigeeV1RatePlan(item))) : undefined, }; } /** * Contains a list of SecurityActions in response to a * ListSecurityActionRequest. */ export interface GoogleCloudApigeeV1ListSecurityActionsResponse { /** * A token, which can be sent as `page_token` to retrieve the next page. If * this field is omitted, there are no subsequent pages. */ nextPageToken?: string; /** * The SecurityActions for the specified environment. */ securityActions?: GoogleCloudApigeeV1SecurityAction[]; } function serializeGoogleCloudApigeeV1ListSecurityActionsResponse(data: any): GoogleCloudApigeeV1ListSecurityActionsResponse { return { ...data, securityActions: data["securityActions"] !== undefined ? data["securityActions"].map((item: any) => (serializeGoogleCloudApigeeV1SecurityAction(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1ListSecurityActionsResponse(data: any): GoogleCloudApigeeV1ListSecurityActionsResponse { return { ...data, securityActions: data["securityActions"] !== undefined ? data["securityActions"].map((item: any) => (deserializeGoogleCloudApigeeV1SecurityAction(item))) : undefined, }; } /** * Response for ListSecurityIncidents. */ export interface GoogleCloudApigeeV1ListSecurityIncidentsResponse { /** * A token that can be sent as `page_token` to retrieve the next page. If * this field is omitted, there are no subsequent pages. */ nextPageToken?: string; /** * List of security incidents in the organization */ securityIncidents?: GoogleCloudApigeeV1SecurityIncident[]; } function serializeGoogleCloudApigeeV1ListSecurityIncidentsResponse(data: any): GoogleCloudApigeeV1ListSecurityIncidentsResponse { return { ...data, securityIncidents: data["securityIncidents"] !== undefined ? data["securityIncidents"].map((item: any) => (serializeGoogleCloudApigeeV1SecurityIncident(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1ListSecurityIncidentsResponse(data: any): GoogleCloudApigeeV1ListSecurityIncidentsResponse { return { ...data, securityIncidents: data["securityIncidents"] !== undefined ? data["securityIncidents"].map((item: any) => (deserializeGoogleCloudApigeeV1SecurityIncident(item))) : undefined, }; } /** * Response for ListSecurityProfileRevisions. */ export interface GoogleCloudApigeeV1ListSecurityProfileRevisionsResponse { /** * A token that can be sent as `page_token` to retrieve the next page. If * this field is omitted, there are no subsequent pages. */ nextPageToken?: string; /** * List of security profile revisions. The revisions may be attached or * unattached to any environment. */ securityProfiles?: GoogleCloudApigeeV1SecurityProfile[]; } /** * Response for ListSecurityProfiles. */ export interface GoogleCloudApigeeV1ListSecurityProfilesResponse { /** * A token that can be sent as `page_token` to retrieve the next page. If * this field is omitted, there are no subsequent pages. */ nextPageToken?: string; /** * List of security profiles in the organization. The profiles may be * attached or unattached to any environment. This will return latest revision * of each profile. */ securityProfiles?: GoogleCloudApigeeV1SecurityProfile[]; } /** * Response for ListSecurityProfilesV2. */ export interface GoogleCloudApigeeV1ListSecurityProfilesV2Response { /** * A token that can be sent as `page_token` to retrieve the next page. If * this field is omitted, there are no subsequent pages. */ nextPageToken?: string; /** * List of security profiles in the organization. */ securityProfilesV2?: GoogleCloudApigeeV1SecurityProfileV2[]; } /** * The response for SecurityReports. */ export interface GoogleCloudApigeeV1ListSecurityReportsResponse { /** * If the number of security reports exceeded the page size requested, the * token can be used to fetch the next page in a subsequent call. If the * response is the last page and there are no more reports to return this * field is left empty. */ nextPageToken?: string; /** * The security reports belong to requested resource name. */ securityReports?: GoogleCloudApigeeV1SecurityReport[]; } function serializeGoogleCloudApigeeV1ListSecurityReportsResponse(data: any): GoogleCloudApigeeV1ListSecurityReportsResponse { return { ...data, securityReports: data["securityReports"] !== undefined ? data["securityReports"].map((item: any) => (serializeGoogleCloudApigeeV1SecurityReport(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1ListSecurityReportsResponse(data: any): GoogleCloudApigeeV1ListSecurityReportsResponse { return { ...data, securityReports: data["securityReports"] !== undefined ? data["securityReports"].map((item: any) => (deserializeGoogleCloudApigeeV1SecurityReport(item))) : undefined, }; } export interface GoogleCloudApigeeV1ListSharedFlowsResponse { sharedFlows?: GoogleCloudApigeeV1SharedFlow[]; } function serializeGoogleCloudApigeeV1ListSharedFlowsResponse(data: any): GoogleCloudApigeeV1ListSharedFlowsResponse { return { ...data, sharedFlows: data["sharedFlows"] !== undefined ? data["sharedFlows"].map((item: any) => (serializeGoogleCloudApigeeV1SharedFlow(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1ListSharedFlowsResponse(data: any): GoogleCloudApigeeV1ListSharedFlowsResponse { return { ...data, sharedFlows: data["sharedFlows"] !== undefined ? data["sharedFlows"].map((item: any) => (deserializeGoogleCloudApigeeV1SharedFlow(item))) : undefined, }; } /** * Response for ListTraceConfigOverrides. */ export interface GoogleCloudApigeeV1ListTraceConfigOverridesResponse { /** * Token value that can be passed as `page_token` to retrieve the next page * of content. */ nextPageToken?: string; /** * List all trace configuration overrides in an environment. */ traceConfigOverrides?: GoogleCloudApigeeV1TraceConfigOverride[]; } /** * Encapsulates additional information about query execution. */ export interface GoogleCloudApigeeV1Metadata { /** * List of error messages as strings. */ errors?: string[]; /** * List of additional information such as data source, if result was * truncated. For example: ``` "notices": [ "Source:Postgres", "PG * Host:uappg0rw.e2e.apigeeks.net", "query served * by:4b64601e-40de-4eb1-bfb9-eeee7ac929ed", "Table used: * edge.api.uapgroup2.agg_api" ]``` */ notices?: string[]; } /** * Encapsulates the metric data point. For example: ```{ "name": * "sum(message_count)", "values" : [ { "timestamp": 1549004400000, "value": * "39.0" }, { "timestamp" : 1548997200000, "value" : "0.0" } ] }``` or ```{ * "name": "sum(message_count)", "values" : ["39.0"] }``` */ export interface GoogleCloudApigeeV1Metric { /** * Metric name. */ name?: string; /** * List of metric values. Possible value formats include: `"values":["39.0"]` * or `"values":[ { "value": "39.0", "timestamp": 1232434354} ]` */ values?: any[]; } /** * The optionally aggregated metric to query with its ordering. */ export interface GoogleCloudApigeeV1MetricAggregation { /** * Aggregation function associated with the metric. */ aggregation?: | "AGGREGATION_FUNCTION_UNSPECIFIED" | "AVG" | "SUM" | "MIN" | "MAX" | "COUNT_DISTINCT"; /** * Name of the metric */ name?: string; /** * Ordering for this aggregation in the result. For time series this is * ignored since the ordering of points depends only on the timestamp, not the * values. */ order?: | "ORDER_UNSPECIFIED" | "ASCENDING" | "DESCENDING"; } /** * Configuration for the Monetization add-on. */ export interface GoogleCloudApigeeV1MonetizationConfig { /** * Flag that specifies whether the Monetization add-on is enabled. */ enabled?: boolean; } /** * Apigee NAT(network address translation) address. A NAT address is a static * external IP address used for Internet egress traffic. */ export interface GoogleCloudApigeeV1NatAddress { /** * Output only. The static IPV4 address. */ readonly ipAddress?: string; /** * Required. Resource ID of the NAT address. */ name?: string; /** * Output only. State of the nat address. */ readonly state?: | "STATE_UNSPECIFIED" | "CREATING" | "RESERVED" | "ACTIVE" | "DELETING"; } /** * NodeConfig for setting the min/max number of nodes associated with the * environment. */ export interface GoogleCloudApigeeV1NodeConfig { /** * Output only. The current total number of gateway nodes that each * environment currently has across all instances. */ readonly currentAggregateNodeCount?: bigint; /** * Optional. The maximum total number of gateway nodes that the is reserved * for all instances that has the specified environment. If not specified, the * default is determined by the recommended maximum number of nodes for that * gateway. */ maxNodeCount?: bigint; /** * Optional. The minimum total number of gateway nodes that the is reserved * for all instances that has the specified environment. If not specified, the * default is determined by the recommended minimum number of nodes for that * gateway. */ minNodeCount?: bigint; } function serializeGoogleCloudApigeeV1NodeConfig(data: any): GoogleCloudApigeeV1NodeConfig { return { ...data, maxNodeCount: data["maxNodeCount"] !== undefined ? String(data["maxNodeCount"]) : undefined, minNodeCount: data["minNodeCount"] !== undefined ? String(data["minNodeCount"]) : undefined, }; } function deserializeGoogleCloudApigeeV1NodeConfig(data: any): GoogleCloudApigeeV1NodeConfig { return { ...data, currentAggregateNodeCount: data["currentAggregateNodeCount"] !== undefined ? BigInt(data["currentAggregateNodeCount"]) : undefined, maxNodeCount: data["maxNodeCount"] !== undefined ? BigInt(data["maxNodeCount"]) : undefined, minNodeCount: data["minNodeCount"] !== undefined ? BigInt(data["minNodeCount"]) : undefined, }; } /** * OpenAPI Specification documentation for a catalog item. */ export interface GoogleCloudApigeeV1OASDocumentation { /** * Output only. The format of the input specification file contents. */ readonly format?: | "FORMAT_UNSPECIFIED" | "YAML" | "JSON"; /** * Required. The documentation file contents for the OpenAPI Specification. * JSON and YAML file formats are supported. */ spec?: GoogleCloudApigeeV1DocumentationFile; } function serializeGoogleCloudApigeeV1OASDocumentation(data: any): GoogleCloudApigeeV1OASDocumentation { return { ...data, spec: data["spec"] !== undefined ? serializeGoogleCloudApigeeV1DocumentationFile(data["spec"]) : undefined, }; } function deserializeGoogleCloudApigeeV1OASDocumentation(data: any): GoogleCloudApigeeV1OASDocumentation { return { ...data, spec: data["spec"] !== undefined ? deserializeGoogleCloudApigeeV1DocumentationFile(data["spec"]) : undefined, }; } /** * Represents the pairing of REST resource path and the actions (verbs) allowed * on the resource path. */ export interface GoogleCloudApigeeV1Operation { /** * methods refers to the REST verbs as in * https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html. When none * specified, all verb types are allowed. */ methods?: string[]; /** * Required. REST resource path associated with the API proxy or remote * service. */ resource?: string; } /** * Binds the resources in an API proxy or remote service with the allowed REST * methods and associated quota enforcement. */ export interface GoogleCloudApigeeV1OperationConfig { /** * Required. Name of the API proxy or remote service with which the * resources, methods, and quota are associated. */ apiSource?: string; /** * Custom attributes associated with the operation. */ attributes?: GoogleCloudApigeeV1Attribute[]; /** * List of resource/method pairs for the API proxy or remote service to which * quota will applied. **Note**: Currently, you can specify only a single * resource/method pair. The call will fail if more than one resource/method * pair is provided. */ operations?: GoogleCloudApigeeV1Operation[]; /** * Quota parameters to be enforced for the resources, methods, and API source * combination. If none are specified, quota enforcement will not be done. */ quota?: GoogleCloudApigeeV1Quota; } /** * List of operation configuration details associated with Apigee API proxies * or remote services. Remote services are non-Apigee proxies, such as * Istio-Envoy. */ export interface GoogleCloudApigeeV1OperationGroup { /** * Required. List of operation configurations for either Apigee API proxies * or other remote services that are associated with this API product. */ operationConfigs?: GoogleCloudApigeeV1OperationConfig[]; /** * Flag that specifes whether the configuration is for Apigee API proxy or a * remote service. Valid values include `proxy` or `remoteservice`. Defaults * to `proxy`. Set to `proxy` when Apigee API proxies are associated with the * API product. Set to `remoteservice` when non-Apigee proxies like * Istio-Envoy are associated with the API product. */ operationConfigType?: string; } /** * Metadata describing an Operation. */ export interface GoogleCloudApigeeV1OperationMetadata { operationType?: | "OPERATION_TYPE_UNSPECIFIED" | "INSERT" | "DELETE" | "UPDATE"; /** * Progress of the operation. */ progress?: GoogleCloudApigeeV1OperationMetadataProgress; state?: | "STATE_UNSPECIFIED" | "NOT_STARTED" | "IN_PROGRESS" | "FINISHED"; /** * Name of the resource for which the operation is operating on. */ targetResourceName?: string; /** * Warnings encountered while executing the operation. */ warnings?: string[]; } /** * Information about operation progress. */ export interface GoogleCloudApigeeV1OperationMetadataProgress { /** * Description of the operation's progress. */ description?: string; /** * The additional details of the progress. */ details?: { [key: string]: any }; /** * The percentage of the operation progress. */ percentDone?: number; /** * State of the operation. */ state?: | "STATE_UNSPECIFIED" | "NOT_STARTED" | "IN_PROGRESS" | "FINISHED"; } export interface GoogleCloudApigeeV1OptimizedStats { /** * Wraps the `stats` response for JavaScript Optimized Scenario with a * response key. For example: ```{ "Response": { "TimeUnit": [], "metaData": { * "errors": [], "notices": [ "Source:Postgres", "Table used: * edge.api.aaxgroup001.agg_api", "PG * Host:ruappg08-ro.production.apigeeks.net", "query served * by:80c4ebca-6a10-4a2e-8faf-c60c1ee306ca" ] }, "resultTruncated": false, * "stats": { "data": [ { "identifier": { "names": [ "apiproxy" ], "values": [ * "sirjee" ] }, "metric": [ { "env": "prod", "name": "sum(message_count)", * "values": [ 36.0 ] }, { "env": "prod", "name": "sum(is_error)", "values": [ * 36.0 ] } ] } ] } } }``` */ Response?: GoogleCloudApigeeV1OptimizedStatsResponse; } function serializeGoogleCloudApigeeV1OptimizedStats(data: any): GoogleCloudApigeeV1OptimizedStats { return { ...data, Response: data["Response"] !== undefined ? serializeGoogleCloudApigeeV1OptimizedStatsResponse(data["Response"]) : undefined, }; } function deserializeGoogleCloudApigeeV1OptimizedStats(data: any): GoogleCloudApigeeV1OptimizedStats { return { ...data, Response: data["Response"] !== undefined ? deserializeGoogleCloudApigeeV1OptimizedStatsResponse(data["Response"]) : undefined, }; } /** * Encapsulates a data node as represented below: ``` { "identifier": { * "names": [ "apiproxy" ], "values": [ "sirjee" ] }, "metric": [ { "env": * "prod", "name": "sum(message_count)", "values": [ 36.0 ] } ] }``` or ``` { * "env": "prod", "name": "sum(message_count)", "values": [ 36.0 ] }``` * Depending on whether a dimension is present in the query or not the data node * type can be a simple metric value or dimension identifier with list of * metrics. */ export interface GoogleCloudApigeeV1OptimizedStatsNode { data?: any[]; } /** * Encapsulates a response format for JavaScript Optimized Scenario. */ export interface GoogleCloudApigeeV1OptimizedStatsResponse { /** * Metadata information about the query executed. */ metaData?: GoogleCloudApigeeV1Metadata; /** * Boolean flag that indicates whether the results were truncated based on * the limit parameter. */ resultTruncated?: boolean; /** * `stats` results. */ stats?: GoogleCloudApigeeV1OptimizedStatsNode; /** * List of time unit values. Time unit refers to an epoch timestamp value. */ TimeUnit?: bigint[]; } function serializeGoogleCloudApigeeV1OptimizedStatsResponse(data: any): GoogleCloudApigeeV1OptimizedStatsResponse { return { ...data, TimeUnit: data["TimeUnit"] !== undefined ? data["TimeUnit"].map((item: any) => (String(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1OptimizedStatsResponse(data: any): GoogleCloudApigeeV1OptimizedStatsResponse { return { ...data, TimeUnit: data["TimeUnit"] !== undefined ? data["TimeUnit"].map((item: any) => (BigInt(item))) : undefined, }; } export interface GoogleCloudApigeeV1Organization { /** * Addon configurations of the Apigee organization. */ addonsConfig?: GoogleCloudApigeeV1AddonsConfig; /** * Required. DEPRECATED: This field will eventually be deprecated and * replaced with a differently-named field. Primary Google Cloud region for * analytics data storage. For valid values, see [Create an Apigee * organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org). */ analyticsRegion?: string; /** * Cloud KMS key name used for encrypting API consumer data. If not specified * or [BillingType](#BillingType) is `EVALUATION`, a Google-Managed encryption * key will be used. Format: * `projects/*\/locations/*\/keyRings/*\/cryptoKeys/*` */ apiConsumerDataEncryptionKeyName?: string; /** * This field is needed only for customers using non-default data residency * regions. Apigee stores some control plane data only in single region. This * field determines which single region Apigee should use. For example: * "us-west1" when control plane is in US or "europe-west2" when control plane * is in EU. */ apiConsumerDataLocation?: string; /** * Output only. Apigee Project ID associated with the organization. Use this * project to allowlist Apigee in the Service Attachment when using private * service connect with Apigee. */ readonly apigeeProjectId?: string; /** * Not used by Apigee. */ attributes?: string[]; /** * Compute Engine network used for Service Networking to be peered with * Apigee runtime instances. See [Getting started with the Service Networking * API](https://cloud.google.com/service-infrastructure/docs/service-networking/getting-started). * Valid only when [RuntimeType](#RuntimeType) is set to `CLOUD`. The value * must be set before the creation of a runtime instance and can be updated * only when there are no runtime instances. For example: `default`. Apigee * also supports shared VPC (that is, the host network project is not the same * as the one that is peering with Apigee). See [Shared VPC * overview](https://cloud.google.com/vpc/docs/shared-vpc). To use a shared * VPC network, use the following format: * `projects/{host-project-id}/{region}/networks/{network-name}`. For example: * `projects/my-sharedvpc-host/global/networks/mynetwork` **Note:** Not * supported for Apigee hybrid. */ authorizedNetwork?: string; /** * Billing type of the Apigee organization. See [Apigee * pricing](https://cloud.google.com/apigee/pricing). */ billingType?: | "BILLING_TYPE_UNSPECIFIED" | "SUBSCRIPTION" | "EVALUATION" | "PAYG"; /** * Output only. Base64-encoded public certificate for the root CA of the * Apigee organization. Valid only when [RuntimeType](#RuntimeType) is * `CLOUD`. */ readonly caCertificate?: Uint8Array; /** * Cloud KMS key name used for encrypting control plane data that is stored * in a multi region. Only used for the data residency region "US" or "EU". If * not specified or [BillingType](#BillingType) is `EVALUATION`, a * Google-Managed encryption key will be used. Format: * `projects/*\/locations/*\/keyRings/*\/cryptoKeys/*` */ controlPlaneEncryptionKeyName?: string; /** * Output only. Time that the Apigee organization was created in milliseconds * since epoch. */ readonly createdAt?: bigint; /** * Not used by Apigee. */ customerName?: string; /** * Description of the Apigee organization. */ description?: string; /** * Optional. Flag that specifies whether the VPC Peering through Private * Google Access should be disabled between the consumer network and Apigee. * Valid only when RuntimeType is set to CLOUD. Required if an * authorizedNetwork on the consumer project is not provided, in which case * the flag should be set to true. The value must be set before the creation * of any Apigee runtime instance and can be updated only when there are no * runtime instances. **Note:** Apigee will be deprecating the vpc peering * model that requires you to provide 'authorizedNetwork', by making the * non-peering model as the default way of provisioning Apigee organization in * future. So, this will be a temporary flag to enable the transition. Not * supported for Apigee hybrid. */ disableVpcPeering?: boolean; /** * Display name for the Apigee organization. Unused, but reserved for future * use. */ displayName?: string; /** * Output only. List of environments in the Apigee organization. */ readonly environments?: string[]; /** * Output only. Time that the Apigee organization is scheduled for deletion. */ readonly expiresAt?: bigint; /** * Output only. Time that the Apigee organization was last modified in * milliseconds since epoch. */ readonly lastModifiedAt?: bigint; /** * Output only. Name of the Apigee organization. */ readonly name?: string; /** * Configuration for the Portals settings. */ portalDisabled?: boolean; /** * Output only. Project ID associated with the Apigee organization. */ readonly projectId?: string; /** * Properties defined in the Apigee organization profile. */ properties?: GoogleCloudApigeeV1Properties; /** * Cloud KMS key name used for encrypting the data that is stored and * replicated across runtime instances. Update is not allowed after the * organization is created. If not specified or [RuntimeType](#RuntimeType) is * `TRIAL`, a Google-Managed encryption key will be used. For example: * "projects/foo/locations/us/keyRings/bar/cryptoKeys/baz". **Note:** Not * supported for Apigee hybrid. */ runtimeDatabaseEncryptionKeyName?: string; /** * Required. Runtime type of the Apigee organization based on the Apigee * subscription purchased. */ runtimeType?: | "RUNTIME_TYPE_UNSPECIFIED" | "CLOUD" | "HYBRID"; /** * Output only. State of the organization. Values other than ACTIVE means the * resource is not ready to use. */ readonly state?: | "STATE_UNSPECIFIED" | "CREATING" | "ACTIVE" | "DELETING" | "UPDATING"; /** * Output only. Subscription plan that the customer has purchased. Output * only. */ readonly subscriptionPlan?: | "SUBSCRIPTION_PLAN_UNSPECIFIED" | "SUBSCRIPTION_2021" | "SUBSCRIPTION_2024"; /** * Output only. DEPRECATED: This will eventually be replaced by BillingType. * Subscription type of the Apigee organization. Valid values include trial * (free, limited, and for evaluation purposes only) or paid (full * subscription has been purchased). See [Apigee * pricing](https://cloud.google.com/apigee/pricing/). */ readonly subscriptionType?: | "SUBSCRIPTION_TYPE_UNSPECIFIED" | "PAID" | "TRIAL"; /** * Not used by Apigee. */ type?: | "TYPE_UNSPECIFIED" | "TYPE_TRIAL" | "TYPE_PAID" | "TYPE_INTERNAL"; } export interface GoogleCloudApigeeV1OrganizationProjectMapping { /** * Output only. The Google Cloud region where control plane data is located. * For more information, see https://cloud.google.com/about/locations/. */ readonly location?: string; /** * Name of the Apigee organization. */ organization?: string; /** * Google Cloud project associated with the Apigee organization */ projectId?: string; /** * DEPRECATED: Use `project_id`. An Apigee Organization is mapped to a single * project. */ projectIds?: string[]; } export interface GoogleCloudApigeeV1PodStatus { /** * Version of the application running in the pod. */ appVersion?: string; /** * Status of the deployment. Valid values include: - `deployed`: Successful. * - `error` : Failed. - `pending` : Pod has not yet reported on the * deployment. */ deploymentStatus?: string; /** * Time the deployment status was reported in milliseconds since epoch. */ deploymentStatusTime?: bigint; /** * Time the proxy was deployed in milliseconds since epoch. */ deploymentTime?: bigint; /** * Name of the pod which is reporting the status. */ podName?: string; /** * Overall status of the pod (not this specific deployment). Valid values * include: - `active`: Up to date. - `stale` : Recently out of date. Pods * that have not reported status in a long time are excluded from the output. */ podStatus?: string; /** * Time the pod status was reported in milliseconds since epoch. */ podStatusTime?: bigint; /** * Code associated with the deployment status. */ statusCode?: string; /** * Human-readable message associated with the status code. */ statusCodeDetails?: string; } function serializeGoogleCloudApigeeV1PodStatus(data: any): GoogleCloudApigeeV1PodStatus { return { ...data, deploymentStatusTime: data["deploymentStatusTime"] !== undefined ? String(data["deploymentStatusTime"]) : undefined, deploymentTime: data["deploymentTime"] !== undefined ? String(data["deploymentTime"]) : undefined, podStatusTime: data["podStatusTime"] !== undefined ? String(data["podStatusTime"]) : undefined, }; } function deserializeGoogleCloudApigeeV1PodStatus(data: any): GoogleCloudApigeeV1PodStatus { return { ...data, deploymentStatusTime: data["deploymentStatusTime"] !== undefined ? BigInt(data["deploymentStatusTime"]) : undefined, deploymentTime: data["deploymentTime"] !== undefined ? BigInt(data["deploymentTime"]) : undefined, podStatusTime: data["podStatusTime"] !== undefined ? BigInt(data["podStatusTime"]) : undefined, }; } /** * Point is a group of information collected by runtime plane at critical * points of the message flow of the processed API request. This is a list of * supported point IDs, categorized to three major buckets. For each category, * debug points that we are currently supporting are listed below: - Flow status * debug points: StateChange FlowInfo Condition Execution DebugMask Error - Flow * control debug points: FlowCallout Paused Resumed FlowReturn BreakFlow Error - * Runtime debug points: ScriptExecutor FlowCalloutStepDefinition CustomTarget * StepDefinition Oauth2ServicePoint RaiseFault NodeJS The detail information of * the given debug point is stored in a list of results. */ export interface GoogleCloudApigeeV1Point { /** * Name of a step in the transaction. */ id?: string; /** * List of results extracted from a given debug point. */ results?: GoogleCloudApigeeV1Result[]; } /** * ProfileConfig defines a set of categories and policies which will be used to * compute security score. */ export interface GoogleCloudApigeeV1ProfileConfig { /** * List of categories of profile config. */ categories?: GoogleCloudApigeeV1ProfileConfigCategory[]; } /** * Checks for abuse, which includes any requests sent to the API for purposes * other than what it is intended for, such as high volumes of requests, data * scraping, and abuse related to authorization. */ export interface GoogleCloudApigeeV1ProfileConfigAbuse { } /** * By default, following policies will be included: - JWS - JWT - OAuth - * BasicAuth - APIKey */ export interface GoogleCloudApigeeV1ProfileConfigAuthorization { } /** * Advanced API Security provides security profile that scores the following * categories. */ export interface GoogleCloudApigeeV1ProfileConfigCategory { /** * Checks for abuse, which includes any requests sent to the API for purposes * other than what it is intended for, such as high volumes of requests, data * scraping, and abuse related to authorization. */ abuse?: GoogleCloudApigeeV1ProfileConfigAbuse; /** * Checks to see if you have an authorization policy in place. */ authorization?: GoogleCloudApigeeV1ProfileConfigAuthorization; /** * Checks to see if you have CORS policy in place. */ cors?: GoogleCloudApigeeV1ProfileConfigCORS; /** * Checks to see if you have a mediation policy in place. */ mediation?: GoogleCloudApigeeV1ProfileConfigMediation; /** * Checks to see if you have configured mTLS for the target server. */ mtls?: GoogleCloudApigeeV1ProfileConfigMTLS; /** * Checks to see if you have a threat protection policy in place. */ threat?: GoogleCloudApigeeV1ProfileConfigThreat; } /** * Checks to see if you have CORS policy in place. */ export interface GoogleCloudApigeeV1ProfileConfigCORS { } /** * By default, following policies will be included: - OASValidation - * SOAPMessageValidation */ export interface GoogleCloudApigeeV1ProfileConfigMediation { } /** * Checks to see if you have configured mTLS for the target server. */ export interface GoogleCloudApigeeV1ProfileConfigMTLS { } /** * By default, following policies will be included: - XMLThreatProtection - * JSONThreatProtection */ export interface GoogleCloudApigeeV1ProfileConfigThreat { } /** * Message for compatibility with legacy Edge specification for Java Properties * object in JSON. */ export interface GoogleCloudApigeeV1Properties { /** * List of all properties in the object */ property?: GoogleCloudApigeeV1Property[]; } /** * A single property entry in the Properties message. */ export interface GoogleCloudApigeeV1Property { /** * The property key */ name?: string; /** * The property value */ value?: string; } /** * Request for ProvisionOrganization. */ export interface GoogleCloudApigeeV1ProvisionOrganizationRequest { /** * Primary Cloud Platform region for analytics data storage. For valid * values, see [Create an * organization](https://cloud.google.com/apigee/docs/hybrid/latest/precog-provision). * Defaults to `us-west1`. */ analyticsRegion?: string; /** * Compute Engine network used for Service Networking to be peered with * Apigee runtime instances. See [Getting started with the Service Networking * API](https://cloud.google.com/service-infrastructure/docs/service-networking/getting-started). * Apigee also supports shared VPC (that is, the host network project is not * the same as the one that is peering with Apigee). See [Shared VPC * overview](https://cloud.google.com/vpc/docs/shared-vpc). To use a shared * VPC network, use the following format: * `projects/{host-project-id}/{region}/networks/{network-name}`. For example: * `projects/my-sharedvpc-host/global/networks/mynetwork` */ authorizedNetwork?: string; /** * Optional. Flag that specifies whether the VPC Peering through Private * Google Access should be disabled between the consumer network and Apigee. * Required if an authorizedNetwork on the consumer project is not provided, * in which case the flag should be set to true. The value must be set before * the creation of any Apigee runtime instance and can be updated only when * there are no runtime instances. **Note:** Apigee will be deprecating the * vpc peering model that requires you to provide 'authorizedNetwork', by * making the non-peering model as the default way of provisioning Apigee * organization in future. So, this will be a temporary flag to enable the * transition. Not supported for Apigee hybrid. */ disableVpcPeering?: boolean; /** * Cloud Platform location for the runtime instance. Defaults to zone * `us-west1-a`. If a region is provided, `EVAL` organizations will use the * region for automatically selecting a zone for the runtime instance. */ runtimeLocation?: string; } export interface GoogleCloudApigeeV1Query { /** * Delimiter used in the CSV file, if `outputFormat` is set to `csv`. * Defaults to the `,` (comma) character. Supported delimiter characters * include comma (`,`), pipe (`|`), and tab (`\t`). */ csvDelimiter?: string; /** * A list of dimensions. * https://docs.apigee.com/api-platform/analytics/analytics-reference#dimensions */ dimensions?: string[]; /** * Hostname needs to be specified if query intends to run at host level. This * field is only allowed when query is submitted by CreateHostAsyncQuery where * analytics data will be grouped by organization and hostname. */ envgroupHostname?: string; /** * Boolean expression that can be used to filter data. Filter expressions can * be combined using AND/OR terms and should be fully parenthesized to avoid * ambiguity. See Analytics metrics, dimensions, and filters reference * https://docs.apigee.com/api-platform/analytics/analytics-reference for more * information on the fields available to filter on. For more information on * the tokens that you use to build filter expressions, see Filter expression * syntax. * https://docs.apigee.com/api-platform/analytics/asynch-reports-api#filter-expression-syntax */ filter?: string; /** * Time unit used to group the result set. Valid values include: second, * minute, hour, day, week, or month. If a query includes groupByTimeUnit, * then the result is an aggregation based on the specified time unit and the * resultant timestamp does not include milliseconds precision. If a query * omits groupByTimeUnit, then the resultant timestamp includes milliseconds * precision. */ groupByTimeUnit?: string; /** * Maximum number of rows that can be returned in the result. */ limit?: number; /** * A list of Metrics. */ metrics?: GoogleCloudApigeeV1QueryMetric[]; /** * Asynchronous Query Name. */ name?: string; /** * Valid values include: `csv` or `json`. Defaults to `json`. Note: Configure * the delimiter for CSV output using the csvDelimiter property. */ outputFormat?: string; /** * Asynchronous Report ID. */ reportDefinitionId?: string; /** * Required. Time range for the query. Can use the following predefined * strings to specify the time range: `last60minutes` `last24hours` * `last7days` Or, specify the timeRange as a structure describing start and * end timestamps in the ISO format: yyyy-mm-ddThh:mm:ssZ. Example: * "timeRange": { "start": "2018-07-29T00:13:00Z", "end": * "2018-08-01T00:18:00Z" } */ timeRange?: any; } export interface GoogleCloudApigeeV1QueryMetadata { /** * Dimensions of the AsyncQuery. */ dimensions?: string[]; /** * End timestamp of the query range. */ endTimestamp?: string; /** * Metrics of the AsyncQuery. Example: * ["name:message_count,func:sum,alias:sum_message_count"] */ metrics?: string[]; /** * Output format. */ outputFormat?: string; /** * Start timestamp of the query range. */ startTimestamp?: string; /** * Query GroupBy time unit. */ timeUnit?: string; } /** * More info about Metric: * https://docs.apigee.com/api-platform/analytics/analytics-reference#metrics */ export interface GoogleCloudApigeeV1QueryMetric { /** * Alias for the metric. Alias will be used to replace metric name in query * results. */ alias?: string; /** * Aggregation function: avg, min, max, or sum. */ function?: string; /** * Required. Metric name. */ name?: string; /** * One of `+`, `-`, `/`, `%`, `*`. */ operator?: string; /** * Operand value should be provided when operator is set. */ value?: string; } /** * Request payload representing the query to be run for fetching security * statistics as rows. */ export interface GoogleCloudApigeeV1QueryTabularStatsRequest { /** * Required. List of dimension names to group the aggregations by. */ dimensions?: string[]; /** * Filter further on specific dimension values. Follows the same grammar as * custom report's filter expressions. Example, apiproxy eq 'foobar'. * https://cloud.google.com/apigee/docs/api-platform/analytics/analytics-reference#filters */ filter?: string; /** * Required. List of metrics and their aggregations. */ metrics?: GoogleCloudApigeeV1MetricAggregation[]; /** * Page size represents the number of rows. */ pageSize?: number; /** * Identifies a sequence of rows. */ pageToken?: string; /** * Time range for the stats. */ timeRange?: GoogleTypeInterval; } function serializeGoogleCloudApigeeV1QueryTabularStatsRequest(data: any): GoogleCloudApigeeV1QueryTabularStatsRequest { return { ...data, timeRange: data["timeRange"] !== undefined ? serializeGoogleTypeInterval(data["timeRange"]) : undefined, }; } function deserializeGoogleCloudApigeeV1QueryTabularStatsRequest(data: any): GoogleCloudApigeeV1QueryTabularStatsRequest { return { ...data, timeRange: data["timeRange"] !== undefined ? deserializeGoogleTypeInterval(data["timeRange"]) : undefined, }; } /** * Encapsulates two kinds of stats that are results of the dimensions and * aggregations requested. - Tabular rows. - Time series data. Example of * tabular rows, Represents security stats results as a row of flat values. */ export interface GoogleCloudApigeeV1QueryTabularStatsResponse { /** * Column names corresponding to the same order as the inner values in the * stats field. */ columns?: string[]; /** * Next page token. */ nextPageToken?: string; /** * Resultant rows from the executed query. */ values?: any[][]; } /** * QueryTimeSeriesStatsRequest represents a query that returns a collection of * time series sequences grouped by their values. */ export interface GoogleCloudApigeeV1QueryTimeSeriesStatsRequest { /** * List of dimension names to group the aggregations by. If no dimensions are * passed, a single trend line representing the requested metric aggregations * grouped by environment is returned. */ dimensions?: string[]; /** * Filter further on specific dimension values. Follows the same grammar as * custom report's filter expressions. Example, apiproxy eq 'foobar'. * https://cloud.google.com/apigee/docs/api-platform/analytics/analytics-reference#filters */ filter?: string; /** * Required. List of metrics and their aggregations. */ metrics?: GoogleCloudApigeeV1MetricAggregation[]; /** * Page size represents the number of time series sequences, one per unique * set of dimensions and their values. */ pageSize?: number; /** * Page token stands for a specific collection of time series sequences. */ pageToken?: string; /** * Required. Time range for the stats. */ timeRange?: GoogleTypeInterval; /** * Order the sequences in increasing or decreasing order of timestamps. * Default is descending order of timestamps (latest first). */ timestampOrder?: | "ORDER_UNSPECIFIED" | "ASCENDING" | "DESCENDING"; /** * Time buckets to group the stats by. */ windowSize?: | "WINDOW_SIZE_UNSPECIFIED" | "MINUTE" | "HOUR" | "DAY" | "MONTH"; } function serializeGoogleCloudApigeeV1QueryTimeSeriesStatsRequest(data: any): GoogleCloudApigeeV1QueryTimeSeriesStatsRequest { return { ...data, timeRange: data["timeRange"] !== undefined ? serializeGoogleTypeInterval(data["timeRange"]) : undefined, }; } function deserializeGoogleCloudApigeeV1QueryTimeSeriesStatsRequest(data: any): GoogleCloudApigeeV1QueryTimeSeriesStatsRequest { return { ...data, timeRange: data["timeRange"] !== undefined ? deserializeGoogleTypeInterval(data["timeRange"]) : undefined, }; } /** * Represents security stats result as a collection of time series sequences. */ export interface GoogleCloudApigeeV1QueryTimeSeriesStatsResponse { /** * Column names corresponding to the same order as the inner values in the * stats field. */ columns?: string[]; /** * Next page token. */ nextPageToken?: string; /** * Results of the query returned as a JSON array. */ values?: GoogleCloudApigeeV1QueryTimeSeriesStatsResponseSequence[]; } /** * A sequence of time series. */ export interface GoogleCloudApigeeV1QueryTimeSeriesStatsResponseSequence { /** * Map of dimensions and their values that uniquely identifies a time series * sequence. */ dimensions?: { [key: string]: string }; /** * List of points. First value of each inner list is a timestamp. */ points?: any[][]; } /** * Quota contains the essential parameters needed that can be applied on the * resources, methods, API source combination associated with this API product. * While Quota is optional, setting it prevents requests from exceeding the * provisioned parameters. */ export interface GoogleCloudApigeeV1Quota { /** * Required. Time interval over which the number of request messages is * calculated. */ interval?: string; /** * Required. Upper limit allowed for the time interval and time unit * specified. Requests exceeding this limit will be rejected. */ limit?: string; /** * Time unit defined for the `interval`. Valid values include `minute`, * `hour`, `day`, or `month`. If `limit` and `interval` are valid, the default * value is `hour`; otherwise, the default is null. */ timeUnit?: string; } /** * Rate plan details. */ export interface GoogleCloudApigeeV1RatePlan { /** * Name of the API product that the rate plan is associated with. */ apiproduct?: string; /** * Frequency at which the customer will be billed. */ billingPeriod?: | "BILLING_PERIOD_UNSPECIFIED" | "WEEKLY" | "MONTHLY"; /** * API call volume ranges and the fees charged when the total number of API * calls is within a given range. The method used to calculate the final fee * depends on the selected pricing model. For example, if the pricing model is * `STAIRSTEP` and the ranges are defined as follows: ``` { "start": 1, "end": * 100, "fee": 75 }, { "start": 101, "end": 200, "fee": 100 }, } ``` Then the * following fees would be charged based on the total number of API calls * (assuming the currency selected is `USD`): * 1 call costs $75 * 50 calls * cost $75 * 150 calls cost $100 The number of API calls cannot exceed 200. */ consumptionPricingRates?: GoogleCloudApigeeV1RateRange[]; /** * Pricing model used for consumption-based charges. */ consumptionPricingType?: | "CONSUMPTION_PRICING_TYPE_UNSPECIFIED" | "FIXED_PER_UNIT" | "BANDED" | "TIERED" | "STAIRSTEP"; /** * Output only. Time that the rate plan was created in milliseconds since * epoch. */ readonly createdAt?: bigint; /** * Currency to be used for billing. Consists of a three-letter code as * defined by the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) standard. */ currencyCode?: string; /** * Description of the rate plan. */ description?: string; /** * Display name of the rate plan. */ displayName?: string; /** * Time when the rate plan will expire in milliseconds since epoch. Set to 0 * or `null` to indicate that the rate plan should never expire. */ endTime?: bigint; /** * Frequency at which the fixed fee is charged. */ fixedFeeFrequency?: number; /** * Fixed amount that is charged at a defined interval and billed in advance * of use of the API product. The fee will be prorated for the first billing * period. */ fixedRecurringFee?: GoogleTypeMoney; /** * Output only. Time the rate plan was last modified in milliseconds since * epoch. */ readonly lastModifiedAt?: bigint; /** * Output only. Name of the rate plan. */ readonly name?: string; /** * DEPRECATED: This field is no longer supported and will eventually be * removed when Apigee Hybrid 1.5/1.6 is no longer supported. Instead, use the * `billingType` field inside `DeveloperMonetizationConfig` resource. Flag * that specifies the billing account type, prepaid or postpaid. */ paymentFundingModel?: | "PAYMENT_FUNDING_MODEL_UNSPECIFIED" | "PREPAID" | "POSTPAID"; /** * Details of the revenue sharing model. */ revenueShareRates?: GoogleCloudApigeeV1RevenueShareRange[]; /** * Method used to calculate the revenue that is shared with developers. */ revenueShareType?: | "REVENUE_SHARE_TYPE_UNSPECIFIED" | "FIXED" | "VOLUME_BANDED"; /** * Initial, one-time fee paid when purchasing the API product. */ setupFee?: GoogleTypeMoney; /** * Time when the rate plan becomes active in milliseconds since epoch. */ startTime?: bigint; /** * Current state of the rate plan (draft or published). */ state?: | "STATE_UNSPECIFIED" | "DRAFT" | "PUBLISHED"; } function serializeGoogleCloudApigeeV1RatePlan(data: any): GoogleCloudApigeeV1RatePlan { return { ...data, consumptionPricingRates: data["consumptionPricingRates"] !== undefined ? data["consumptionPricingRates"].map((item: any) => (serializeGoogleCloudApigeeV1RateRange(item))) : undefined, endTime: data["endTime"] !== undefined ? String(data["endTime"]) : undefined, fixedRecurringFee: data["fixedRecurringFee"] !== undefined ? serializeGoogleTypeMoney(data["fixedRecurringFee"]) : undefined, revenueShareRates: data["revenueShareRates"] !== undefined ? data["revenueShareRates"].map((item: any) => (serializeGoogleCloudApigeeV1RevenueShareRange(item))) : undefined, setupFee: data["setupFee"] !== undefined ? serializeGoogleTypeMoney(data["setupFee"]) : undefined, startTime: data["startTime"] !== undefined ? String(data["startTime"]) : undefined, }; } function deserializeGoogleCloudApigeeV1RatePlan(data: any): GoogleCloudApigeeV1RatePlan { return { ...data, consumptionPricingRates: data["consumptionPricingRates"] !== undefined ? data["consumptionPricingRates"].map((item: any) => (deserializeGoogleCloudApigeeV1RateRange(item))) : undefined, createdAt: data["createdAt"] !== undefined ? BigInt(data["createdAt"]) : undefined, endTime: data["endTime"] !== undefined ? BigInt(data["endTime"]) : undefined, fixedRecurringFee: data["fixedRecurringFee"] !== undefined ? deserializeGoogleTypeMoney(data["fixedRecurringFee"]) : undefined, lastModifiedAt: data["lastModifiedAt"] !== undefined ? BigInt(data["lastModifiedAt"]) : undefined, revenueShareRates: data["revenueShareRates"] !== undefined ? data["revenueShareRates"].map((item: any) => (deserializeGoogleCloudApigeeV1RevenueShareRange(item))) : undefined, setupFee: data["setupFee"] !== undefined ? deserializeGoogleTypeMoney(data["setupFee"]) : undefined, startTime: data["startTime"] !== undefined ? BigInt(data["startTime"]) : undefined, }; } /** * API call volume range and the fees charged when the total number of API * calls is within the range. */ export interface GoogleCloudApigeeV1RateRange { /** * Ending value of the range. Set to 0 or `null` for the last range of * values. */ end?: bigint; /** * Fee to charge when total number of API calls falls within this range. */ fee?: GoogleTypeMoney; /** * Starting value of the range. Set to 0 or `null` for the initial range of * values. */ start?: bigint; } function serializeGoogleCloudApigeeV1RateRange(data: any): GoogleCloudApigeeV1RateRange { return { ...data, end: data["end"] !== undefined ? String(data["end"]) : undefined, fee: data["fee"] !== undefined ? serializeGoogleTypeMoney(data["fee"]) : undefined, start: data["start"] !== undefined ? String(data["start"]) : undefined, }; } function deserializeGoogleCloudApigeeV1RateRange(data: any): GoogleCloudApigeeV1RateRange { return { ...data, end: data["end"] !== undefined ? BigInt(data["end"]) : undefined, fee: data["fee"] !== undefined ? deserializeGoogleTypeMoney(data["fee"]) : undefined, start: data["start"] !== undefined ? BigInt(data["start"]) : undefined, }; } /** * A Reference configuration. References must refer to a keystore that also * exists in the parent environment. */ export interface GoogleCloudApigeeV1Reference { /** * Optional. A human-readable description of this reference. */ description?: string; /** * Required. The resource id of this reference. Values must match the regular * expression [\w\s\-.]+. */ name?: string; /** * Required. The id of the resource to which this reference refers. Must be * the id of a resource that exists in the parent environment and is of the * given resource_type. */ refers?: string; /** * The type of resource referred to by this reference. Valid values are * 'KeyStore' or 'TrustStore'. */ resourceType?: string; } export interface GoogleCloudApigeeV1ReferenceConfig { /** * Name of the reference in the following format: * `organizations/{org}/environments/{env}/references/{reference}` */ name?: string; /** * Name of the referenced resource in the following format: * `organizations/{org}/environments/{env}/keystores/{keystore}` Only * references to keystore resources are supported. */ resourceName?: string; } /** * Request for ReportInstanceStatus. */ export interface GoogleCloudApigeeV1ReportInstanceStatusRequest { /** * A unique ID for the instance which is guaranteed to be unique in case the * user installs multiple hybrid runtimes with the same instance ID. */ instanceUid?: string; /** * The time the report was generated in the runtime. Used to prevent an old * status from overwriting a newer one. An instance should space out it's * status reports so that clock skew does not play a factor. */ reportTime?: Date; /** * Status for config resources */ resources?: GoogleCloudApigeeV1ResourceStatus[]; } function serializeGoogleCloudApigeeV1ReportInstanceStatusRequest(data: any): GoogleCloudApigeeV1ReportInstanceStatusRequest { return { ...data, reportTime: data["reportTime"] !== undefined ? data["reportTime"].toISOString() : undefined, }; } function deserializeGoogleCloudApigeeV1ReportInstanceStatusRequest(data: any): GoogleCloudApigeeV1ReportInstanceStatusRequest { return { ...data, reportTime: data["reportTime"] !== undefined ? new Date(data["reportTime"]) : undefined, }; } /** * Placeholder for future enhancements to status reporting protocol */ export interface GoogleCloudApigeeV1ReportInstanceStatusResponse { } export interface GoogleCloudApigeeV1ReportProperty { /** * name of the property */ property?: string; /** * property values */ value?: GoogleCloudApigeeV1Attribute[]; } export interface GoogleCloudApigeeV1ResourceConfig { /** * Location of the resource as a URI. */ location?: string; /** * Resource name in the following format: * `organizations/{org}/environments/{env}/resourcefiles/{type}/{file}/revisions/{rev}` * Only environment-scoped resource files are supported. */ name?: string; } /** * Metadata about a resource file. */ export interface GoogleCloudApigeeV1ResourceFile { /** * ID of the resource file. */ name?: string; /** * Resource file type. {{ resource_file_type }} */ type?: string; } /** * List of resource files. */ export interface GoogleCloudApigeeV1ResourceFiles { /** * List of resource files. */ resourceFile?: GoogleCloudApigeeV1ResourceFile[]; } /** * The status of a resource loaded in the runtime. */ export interface GoogleCloudApigeeV1ResourceStatus { /** * The resource name. Currently only two resources are supported: * EnvironmentGroup - organizations/{org}/envgroups/{envgroup} * EnvironmentConfig - * organizations/{org}/environments/{environment}/deployedConfig */ resource?: string; /** * Revisions of the resource currently deployed in the instance. */ revisions?: GoogleCloudApigeeV1RevisionStatus[]; /** * The total number of replicas that should have this resource. */ totalReplicas?: number; /** * The uid of the resource. In the unexpected case that the instance has * multiple uids for the same name, they should be reported under separate * ResourceStatuses. */ uid?: string; } /** * Result is short for "action result", could be different types identified by * "action_result" field. Supported types: 1. DebugInfo : generic debug info * collected by runtime recorded as a list of properties. For example, the * contents could be virtual host info, state change result, or execution * metadata. Required fields : properties, timestamp 2. RequestMessage: * information of a http request. Contains headers, request URI and http methods * type.Required fields : headers, uri, verb 3. ResponseMessage: information of * a http response. Contains headers, reason phrase and http status code. * Required fields : headers, reasonPhrase, statusCode 4. ErrorMessage: * information of a http error message. Contains detail error message, reason * phrase and status code. Required fields : content, headers, reasonPhrase, * statusCode 5. VariableAccess: a list of variable access actions, can be Get, * Set and Remove. Required fields : accessList */ export interface GoogleCloudApigeeV1Result { /** * A list of variable access actions agaist the api proxy. Supported values: * Get, Set, Remove. */ accessList?: GoogleCloudApigeeV1Access[]; /** * Type of the action result. Can be one of the five: DebugInfo, * RequestMessage, ResponseMessage, ErrorMessage, VariableAccess */ ActionResult?: string; /** * Error message content. for example, "content" : * "{\"fault\":{\"faultstring\":\"API timed * out\",\"detail\":{\"errorcode\":\"flow.APITimedOut\"}}}" */ content?: string; /** * A list of HTTP headers. for example, '"headers" : [ { "name" : * "Content-Length", "value" : "83" }, { "name" : "Content-Type", "value" : * "application/json" } ]' */ headers?: GoogleCloudApigeeV1Property[]; /** * Name value pairs used for DebugInfo ActionResult. */ properties?: GoogleCloudApigeeV1Properties; /** * HTTP response phrase */ reasonPhrase?: string; /** * HTTP response code */ statusCode?: string; /** * Timestamp of when the result is recorded. Its format is dd-mm-yy * hh:mm:ss:xxx. For example, `"timestamp" : "12-08-19 00:31:59:960"` */ timestamp?: string; /** * The relative path of the api proxy. for example, `"uRI" : "/iloveapis"` */ uRI?: string; /** * HTTP method verb */ verb?: string; } /** * API call volume range and the percentage of revenue to share with the * developer when the total number of API calls is within the range. */ export interface GoogleCloudApigeeV1RevenueShareRange { /** * Ending value of the range. Set to 0 or `null` for the last range of * values. */ end?: bigint; /** * Percentage of the revenue to be shared with the developer. For example, to * share 21 percent of the total revenue with the developer, set this value to * 21. Specify a decimal number with a maximum of two digits following the * decimal point. */ sharePercentage?: number; /** * Starting value of the range. Set to 0 or `null` for the initial range of * values. */ start?: bigint; } function serializeGoogleCloudApigeeV1RevenueShareRange(data: any): GoogleCloudApigeeV1RevenueShareRange { return { ...data, end: data["end"] !== undefined ? String(data["end"]) : undefined, start: data["start"] !== undefined ? String(data["start"]) : undefined, }; } function deserializeGoogleCloudApigeeV1RevenueShareRange(data: any): GoogleCloudApigeeV1RevenueShareRange { return { ...data, end: data["end"] !== undefined ? BigInt(data["end"]) : undefined, start: data["start"] !== undefined ? BigInt(data["start"]) : undefined, }; } /** * The status of a specific resource revision. */ export interface GoogleCloudApigeeV1RevisionStatus { /** * Errors reported when attempting to load this revision. */ errors?: GoogleCloudApigeeV1UpdateError[]; /** * The json content of the resource revision. Large specs should be sent * individually via the spec field to avoid hitting request size limits. */ jsonSpec?: string; /** * The number of replicas that have successfully loaded this revision. */ replicas?: number; /** * The revision of the resource. */ revisionId?: string; } export interface GoogleCloudApigeeV1RoutingRule { /** * URI path prefix used to route to the specified environment. May contain * one or more wildcards. For example, path segments consisting of a single * `*` character will match any string. */ basepath?: string; /** * Name of a deployment group in an environment bound to the environment * group in the following format: * `organizations/{org}/environment/{env}/deploymentGroups/{group}` Only one * of environment or deployment_group will be set. */ deploymentGroup?: string; /** * The env group config revision_id when this rule was added or last updated. * This value is set when the rule is created and will only update if the the * environment_id changes. It is used to determine if the runtime is up to * date with respect to this rule. This field is omitted from the * IngressConfig unless the GetDeployedIngressConfig API is called with * view=FULL. */ envGroupRevision?: bigint; /** * Name of an environment bound to the environment group in the following * format: `organizations/{org}/environments/{env}`. Only one of environment * or deployment_group will be set. */ environment?: string; /** * Conflicting targets, which will be resource names specifying either * deployment groups or environments. */ otherTargets?: string[]; /** * The resource name of the proxy revision that is receiving this basepath in * the following format: `organizations/{org}/apis/{api}/revisions/{rev}`. * This field is omitted from the IngressConfig unless the * GetDeployedIngressConfig API is called with view=FULL. */ receiver?: string; /** * The unix timestamp when this rule was updated. This is updated whenever * env_group_revision is updated. This field is omitted from the IngressConfig * unless the GetDeployedIngressConfig API is called with view=FULL. */ updateTime?: Date; } function serializeGoogleCloudApigeeV1RoutingRule(data: any): GoogleCloudApigeeV1RoutingRule { return { ...data, envGroupRevision: data["envGroupRevision"] !== undefined ? String(data["envGroupRevision"]) : undefined, updateTime: data["updateTime"] !== undefined ? data["updateTime"].toISOString() : undefined, }; } function deserializeGoogleCloudApigeeV1RoutingRule(data: any): GoogleCloudApigeeV1RoutingRule { return { ...data, envGroupRevision: data["envGroupRevision"] !== undefined ? BigInt(data["envGroupRevision"]) : undefined, updateTime: data["updateTime"] !== undefined ? new Date(data["updateTime"]) : undefined, }; } /** * RuntimeAddonsConfig defines the runtime configurations for add-ons in an * environment. */ export interface GoogleCloudApigeeV1RuntimeAddonsConfig { /** * Runtime configuration for Analytics add-on. */ analyticsConfig?: GoogleCloudApigeeV1RuntimeAnalyticsConfig; /** * Runtime configuration for API Security add-on. */ apiSecurityConfig?: GoogleCloudApigeeV1RuntimeApiSecurityConfig; /** * Name of the addons config in the format: * `organizations/{org}/environments/{env}/addonsConfig` */ name?: string; /** * Revision number used by the runtime to detect config changes. */ revisionId?: string; /** * UID is to detect if config is recreated after deletion. The add-on config * will only be deleted when the environment itself gets deleted, thus it will * always be the same as the UID of EnvironmentConfig. */ uid?: string; } /** * Runtime configuration for the Analytics add-on. */ export interface GoogleCloudApigeeV1RuntimeAnalyticsConfig { /** * If Runtime should send billing data to AX or not. */ billingPipelineEnabled?: boolean; /** * If the Analytics is enabled or not. */ enabled?: boolean; } /** * Runtime configuration for the API Security add-on. */ export interface GoogleCloudApigeeV1RuntimeApiSecurityConfig { /** * If the API Security is enabled or not. */ enabled?: boolean; } /** * Runtime configuration for the organization. Response for GetRuntimeConfig. */ export interface GoogleCloudApigeeV1RuntimeConfig { /** * Cloud Storage bucket used for uploading Analytics records. */ analyticsBucket?: string; /** * Name of the resource in the following format: * `organizations/{org}/runtimeConfig`. */ name?: string; /** * Output only. Tenant project ID associated with the Apigee organization. * The tenant project is used to host Google-managed resources that are * dedicated to this Apigee organization. Clients have limited access to * resources within the tenant project used to support Apigee runtime * instances. Access to the tenant project is managed using * SetSyncAuthorization. It can be empty if the tenant project hasn't been * created yet. */ readonly tenantProjectId?: string; /** * Cloud Storage bucket used for uploading Trace records. */ traceBucket?: string; } /** * NEXT ID: 8 RuntimeTraceConfig defines the configurations for distributed * trace in an environment. */ export interface GoogleCloudApigeeV1RuntimeTraceConfig { /** * Endpoint of the exporter. */ endpoint?: string; /** * Exporter that is used to view the distributed trace captured using * OpenCensus. An exporter sends traces to any backend that is capable of * consuming them. Recorded spans can be exported by registered exporters. */ exporter?: | "EXPORTER_UNSPECIFIED" | "JAEGER" | "CLOUD_TRACE"; /** * Name of the trace config in the following format: * `organizations/{org}/environment/{env}/traceConfig` */ name?: string; /** * List of trace configuration overrides for spicific API proxies. */ overrides?: GoogleCloudApigeeV1RuntimeTraceConfigOverride[]; /** * The timestamp that the revision was created or updated. */ revisionCreateTime?: Date; /** * Revision number which can be used by the runtime to detect if the trace * config has changed between two versions. */ revisionId?: string; /** * Trace configuration for all API proxies in an environment. */ samplingConfig?: GoogleCloudApigeeV1RuntimeTraceSamplingConfig; } function serializeGoogleCloudApigeeV1RuntimeTraceConfig(data: any): GoogleCloudApigeeV1RuntimeTraceConfig { return { ...data, overrides: data["overrides"] !== undefined ? data["overrides"].map((item: any) => (serializeGoogleCloudApigeeV1RuntimeTraceConfigOverride(item))) : undefined, revisionCreateTime: data["revisionCreateTime"] !== undefined ? data["revisionCreateTime"].toISOString() : undefined, }; } function deserializeGoogleCloudApigeeV1RuntimeTraceConfig(data: any): GoogleCloudApigeeV1RuntimeTraceConfig { return { ...data, overrides: data["overrides"] !== undefined ? data["overrides"].map((item: any) => (deserializeGoogleCloudApigeeV1RuntimeTraceConfigOverride(item))) : undefined, revisionCreateTime: data["revisionCreateTime"] !== undefined ? new Date(data["revisionCreateTime"]) : undefined, }; } /** * NEXT ID: 7 Trace configuration override for a specific API proxy in an * environment. */ export interface GoogleCloudApigeeV1RuntimeTraceConfigOverride { /** * Name of the API proxy that will have its trace configuration overridden * following format: `organizations/{org}/apis/{api}` */ apiProxy?: string; /** * Name of the trace config override in the following format: * `organizations/{org}/environment/{env}/traceConfig/overrides/{override}` */ name?: string; /** * The timestamp that the revision was created or updated. */ revisionCreateTime?: Date; /** * Revision number which can be used by the runtime to detect if the trace * config override has changed between two versions. */ revisionId?: string; /** * Trace configuration override for a specific API proxy in an environment. */ samplingConfig?: GoogleCloudApigeeV1RuntimeTraceSamplingConfig; /** * Unique ID for the configuration override. The ID will only change if the * override is deleted and recreated. Corresponds to name's "override" field. */ uid?: string; } function serializeGoogleCloudApigeeV1RuntimeTraceConfigOverride(data: any): GoogleCloudApigeeV1RuntimeTraceConfigOverride { return { ...data, revisionCreateTime: data["revisionCreateTime"] !== undefined ? data["revisionCreateTime"].toISOString() : undefined, }; } function deserializeGoogleCloudApigeeV1RuntimeTraceConfigOverride(data: any): GoogleCloudApigeeV1RuntimeTraceConfigOverride { return { ...data, revisionCreateTime: data["revisionCreateTime"] !== undefined ? new Date(data["revisionCreateTime"]) : undefined, }; } /** * NEXT ID: 3 RuntimeTraceSamplingConfig represents the detail settings of * distributed tracing. Only the fields that are defined in the distributed * trace configuration can be overridden using the distribute trace * configuration override APIs. */ export interface GoogleCloudApigeeV1RuntimeTraceSamplingConfig { /** * Sampler of distributed tracing. OFF is the default value. */ sampler?: | "SAMPLER_UNSPECIFIED" | "OFF" | "PROBABILITY"; /** * Field sampling rate. This value is only applicable when using the * PROBABILITY sampler. The supported values are > 0 and <= 0.5. */ samplingRate?: number; } /** * Response for Schema call */ export interface GoogleCloudApigeeV1Schema { /** * List of schema fields grouped as dimensions. */ dimensions?: GoogleCloudApigeeV1SchemaSchemaElement[]; /** * Additional metadata associated with schema. This is a legacy field and * usually consists of an empty array of strings. */ meta?: string[]; /** * List of schema fields grouped as dimensions that can be used with an * aggregate function such as `sum`, `avg`, `min`, and `max`. */ metrics?: GoogleCloudApigeeV1SchemaSchemaElement[]; } /** * Message type for the schema element */ export interface GoogleCloudApigeeV1SchemaSchemaElement { /** * Name of the field. */ name?: string; /** * Properties for the schema field. For example: { "createTime": * "2016-02-26T10:23:09.592Z", "custom": "false", "type": "string" } */ properties?: GoogleCloudApigeeV1SchemaSchemaProperty; } /** * Properties for the schema field. */ export interface GoogleCloudApigeeV1SchemaSchemaProperty { /** * Time the field was created in RFC3339 string form. For example: * `2016-02-26T10:23:09.592Z`. */ createTime?: string; /** * Flag that specifies whether the field is standard in the dataset or a * custom field created by the customer. `true` indicates that it is a custom * field. */ custom?: string; /** * Data type of the field. */ type?: string; } /** * Represents Security Score. */ export interface GoogleCloudApigeeV1Score { /** * Component containing score, recommendations and actions. */ component?: GoogleCloudApigeeV1ScoreComponent; /** * List of all the drilldown score components. */ subcomponents?: GoogleCloudApigeeV1ScoreComponent[]; /** * Start and end time for the score. */ timeRange?: GoogleTypeInterval; } function serializeGoogleCloudApigeeV1Score(data: any): GoogleCloudApigeeV1Score { return { ...data, component: data["component"] !== undefined ? serializeGoogleCloudApigeeV1ScoreComponent(data["component"]) : undefined, subcomponents: data["subcomponents"] !== undefined ? data["subcomponents"].map((item: any) => (serializeGoogleCloudApigeeV1ScoreComponent(item))) : undefined, timeRange: data["timeRange"] !== undefined ? serializeGoogleTypeInterval(data["timeRange"]) : undefined, }; } function deserializeGoogleCloudApigeeV1Score(data: any): GoogleCloudApigeeV1Score { return { ...data, component: data["component"] !== undefined ? deserializeGoogleCloudApigeeV1ScoreComponent(data["component"]) : undefined, subcomponents: data["subcomponents"] !== undefined ? data["subcomponents"].map((item: any) => (deserializeGoogleCloudApigeeV1ScoreComponent(item))) : undefined, timeRange: data["timeRange"] !== undefined ? deserializeGoogleTypeInterval(data["timeRange"]) : undefined, }; } /** * Component is an individual security element that is scored. */ export interface GoogleCloudApigeeV1ScoreComponent { /** * Time when score was calculated. */ calculateTime?: Date; /** * Time in the requested time period when data was last captured to compute * the score. */ dataCaptureTime?: Date; /** * List of paths for next components. */ drilldownPaths?: string[]; /** * List of recommendations to improve API security. */ recommendations?: GoogleCloudApigeeV1ScoreComponentRecommendation[]; /** * Score for the component. */ score?: number; /** * Path of the component. Example: * /org@myorg/envgroup@myenvgroup/proxies/proxy@myproxy */ scorePath?: string; } function serializeGoogleCloudApigeeV1ScoreComponent(data: any): GoogleCloudApigeeV1ScoreComponent { return { ...data, calculateTime: data["calculateTime"] !== undefined ? data["calculateTime"].toISOString() : undefined, dataCaptureTime: data["dataCaptureTime"] !== undefined ? data["dataCaptureTime"].toISOString() : undefined, }; } function deserializeGoogleCloudApigeeV1ScoreComponent(data: any): GoogleCloudApigeeV1ScoreComponent { return { ...data, calculateTime: data["calculateTime"] !== undefined ? new Date(data["calculateTime"]) : undefined, dataCaptureTime: data["dataCaptureTime"] !== undefined ? new Date(data["dataCaptureTime"]) : undefined, }; } /** * Recommendation based on security concerns and score. */ export interface GoogleCloudApigeeV1ScoreComponentRecommendation { /** * Actions for the recommendation to improve the security score. */ actions?: GoogleCloudApigeeV1ScoreComponentRecommendationAction[]; /** * Description of the recommendation. */ description?: string; /** * Potential impact of this recommendation on the overall score. This denotes * how important this recommendation is to improve the score. */ impact?: number; /** * Title represents recommendation title. */ title?: string; } /** * Action to improve security score. */ export interface GoogleCloudApigeeV1ScoreComponentRecommendationAction { /** * Action context for the action. */ actionContext?: GoogleCloudApigeeV1ScoreComponentRecommendationActionActionContext; /** * Description of the action. */ description?: string; } /** * Action context are all the relevant details for the action. */ export interface GoogleCloudApigeeV1ScoreComponentRecommendationActionActionContext { /** * Documentation link for the action. */ documentationLink?: string; } /** * A SecurityAction is rule that can be enforced at an environment level. The * result is one of: - A denied API call - An explicitly allowed API call - A * flagged API call (HTTP headers added before the target receives it) At least * one condition is required to create a SecurityAction. */ export interface GoogleCloudApigeeV1SecurityAction { /** * Allow a request through if it matches this SecurityAction. */ allow?: GoogleCloudApigeeV1SecurityActionAllow; /** * Optional. If unset, this would apply to all proxies in the environment. If * set, this action is enforced only if at least one proxy in the repeated * list is deployed at the time of enforcement. If set, several restrictions * are enforced on SecurityActions. There can be at most 100 enabled actions * with proxies set in an env. Several other restrictions apply on conditions * and are detailed later. */ apiProxies?: string[]; /** * Required. A valid SecurityAction must contain at least one condition. */ conditionConfig?: GoogleCloudApigeeV1SecurityActionConditionConfig; /** * Output only. The create time for this SecurityAction. */ readonly createTime?: Date; /** * Deny a request through if it matches this SecurityAction. */ deny?: GoogleCloudApigeeV1SecurityActionDeny; /** * Optional. An optional user provided description of the SecurityAction. */ description?: string; /** * The expiration for this SecurityAction. */ expireTime?: Date; /** * Flag a request through if it matches this SecurityAction. */ flag?: GoogleCloudApigeeV1SecurityActionFlag; /** * Immutable. This field is ignored during creation as per AIP-133. Please * set the `security_action_id` field in the CreateSecurityActionRequest when * creating a new SecurityAction. Format: * organizations/{org}/environments/{env}/securityActions/{security_action} */ name?: string; /** * Required. Only an ENABLED SecurityAction is enforced. An ENABLED * SecurityAction past its expiration time will not be enforced. */ state?: | "STATE_UNSPECIFIED" | "ENABLED" | "DISABLED"; /** * Input only. The TTL for this SecurityAction. */ ttl?: number /* Duration */; /** * Output only. The update time for this SecurityAction. This reflects when * this SecurityAction changed states. */ readonly updateTime?: Date; } function serializeGoogleCloudApigeeV1SecurityAction(data: any): GoogleCloudApigeeV1SecurityAction { return { ...data, conditionConfig: data["conditionConfig"] !== undefined ? serializeGoogleCloudApigeeV1SecurityActionConditionConfig(data["conditionConfig"]) : undefined, expireTime: data["expireTime"] !== undefined ? data["expireTime"].toISOString() : undefined, ttl: data["ttl"] !== undefined ? data["ttl"] : undefined, }; } function deserializeGoogleCloudApigeeV1SecurityAction(data: any): GoogleCloudApigeeV1SecurityAction { return { ...data, conditionConfig: data["conditionConfig"] !== undefined ? deserializeGoogleCloudApigeeV1SecurityActionConditionConfig(data["conditionConfig"]) : undefined, createTime: data["createTime"] !== undefined ? new Date(data["createTime"]) : undefined, expireTime: data["expireTime"] !== undefined ? new Date(data["expireTime"]) : undefined, ttl: data["ttl"] !== undefined ? data["ttl"] : undefined, updateTime: data["updateTime"] !== undefined ? new Date(data["updateTime"]) : undefined, }; } /** * Message that should be set in case of an Allow Action. This does not have * any fields. */ export interface GoogleCloudApigeeV1SecurityActionAllow { } /** * The following are a list of conditions. A valid SecurityAction must contain * at least one condition. Within a condition, each element is ORed. Across * conditions elements are ANDed. For example if a SecurityAction has the * following: ip_address_ranges: ["ip1", "ip2"] and bot_reasons: ["Flooder", * "Robot Abuser"] then this is interpreted as: enforce the action if the * incoming request has ((ip_address_ranges = "ip1" OR ip_address_ranges = * "ip2") AND (bot_reasons="Flooder" OR bot_reasons="Robot Abuser")). Conditions * other than ip_address_ranges and bot_reasons cannot be ANDed. */ export interface GoogleCloudApigeeV1SecurityActionConditionConfig { /** * Optional. A list of access_tokens. Limit 1000 per action. */ accessTokens?: string[]; /** * Optional. A list of API keys. Limit 1000 per action. */ apiKeys?: string[]; /** * Optional. A list of API Products. Limit 1000 per action. */ apiProducts?: string[]; /** * Optional. A list of ASN numbers to act on, e.g. 23. * https://en.wikipedia.org/wiki/Autonomous_system_(Internet) This uses int64 * instead of uint32 because of https://linter.aip.dev/141/forbidden-types. */ asns?: bigint[]; /** * Optional. A list of Bot Reasons. Current options: Flooder, Brute Guessor, * Static Content Scraper, OAuth Abuser, Robot Abuser, TorListRule, Advanced * Anomaly Detection, Advanced API Scraper, Search Engine Crawlers, Public * Clouds, Public Cloud AWS, Public Cloud Azure, and Public Cloud Google. */ botReasons?: string[]; /** * Optional. A list of developer apps. Limit 1000 per action. */ developerApps?: string[]; /** * Optional. A list of developers. Limit 1000 per action. */ developers?: string[]; /** * Optional. Act only on particular HTTP methods. E.g. A read-only API can * block POST/PUT/DELETE methods. Accepted values are: GET, HEAD, POST, PUT, * DELETE, CONNECT, OPTIONS, TRACE and PATCH. */ httpMethods?: string[]; /** * Optional. A list of IP addresses. This could be either IPv4 or IPv6. * Limited to 100 per action. */ ipAddressRanges?: string[]; /** * Optional. A list of countries/region codes to act on, e.g. US. This * follows https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2. */ regionCodes?: string[]; /** * Optional. A list of user agents to deny. We look for exact matches. Limit * 50 per action. */ userAgents?: string[]; } function serializeGoogleCloudApigeeV1SecurityActionConditionConfig(data: any): GoogleCloudApigeeV1SecurityActionConditionConfig { return { ...data, asns: data["asns"] !== undefined ? data["asns"].map((item: any) => (String(item))) : undefined, }; } function deserializeGoogleCloudApigeeV1SecurityActionConditionConfig(data: any): GoogleCloudApigeeV1SecurityActionConditionConfig { return { ...data, asns: data["asns"] !== undefined ? data["asns"].map((item: any) => (BigInt(item))) : undefined, }; } /** * Message that should be set in case of a Deny Action. */ export interface GoogleCloudApigeeV1SecurityActionDeny { /** * Optional. The HTTP response code if the Action = DENY. */ responseCode?: number; } /** * The message that should be set in the case of a Flag action. */ export interface GoogleCloudApigeeV1SecurityActionFlag { /** * Optional. A list of HTTP headers to be sent to the target in case of a * FLAG SecurityAction. Limit 5 headers per SecurityAction. At least one is * mandatory. */ headers?: GoogleCloudApigeeV1SecurityActionHttpHeader[]; } /** * An HTTP header. */ export interface GoogleCloudApigeeV1SecurityActionHttpHeader { /** * The header name to be sent to the target. */ name?: string; /** * The header value to be sent to the target. */ value?: string; } /** * SecurityActionsConfig reflects the current state of the SecurityActions * feature. This is a singleton resource: https://google.aip.dev/156 */ export interface GoogleCloudApigeeV1SecurityActionsConfig { /** * The flag that controls whether this feature is enabled. This is `unset` by * default. When this flag is `false`, even if individual rules are enabled, * no SecurityActions will be enforced. */ enabled?: boolean; /** * This is a singleton resource, the name will always be set by * SecurityActions and any user input will be ignored. The name is always: * `organizations/{org}/environments/{env}/security_actions_config` */ name?: string; /** * Output only. The update time for configuration. */ readonly updateTime?: Date; } /** * The security assessment result for one resource. */ export interface GoogleCloudApigeeV1SecurityAssessmentResult { /** * The time of the assessment of this resource. This could lag behind * `assessment_time` due to caching within the backend. */ createTime?: Date; /** * The error status if scoring fails. */ error?: GoogleRpcStatus; /** * The assessed resource. */ resource?: GoogleCloudApigeeV1SecurityAssessmentResultResource; /** * The result of the assessment. */ scoringResult?: GoogleCloudApigeeV1SecurityAssessmentResultScoringResult; } function serializeGoogleCloudApigeeV1SecurityAssessmentResult(data: any): GoogleCloudApigeeV1SecurityAssessmentResult { return { ...data, createTime: data["createTime"] !== undefined ? data["createTime"].toISOString() : undefined, scoringResult: data["scoringResult"] !== undefined ? serializeGoogleCloudApigeeV1SecurityAssessmentResultScoringResult(data["scoringResult"]) : undefined, }; } function deserializeGoogleCloudApigeeV1SecurityAssessmentResult(data: any): GoogleCloudApigeeV1SecurityAssessmentResult { return { ...data, createTime: data["createTime"] !== undefined ? new Date(data["createTime"]) : undefined, scoringResult: data["scoringResult"] !== undefined ? deserializeGoogleCloudApigeeV1SecurityAssessmentResultScoringResult(data["scoringResult"]) : undefined, }; } /** * Resource for which we are computing security assessment. */ export interface GoogleCloudApigeeV1SecurityAssessmentResultResource { /** * Required. Name of this resource. */ name?: string; /** * The revision id for the resource. In case of Apigee, this is proxy * revision id. */ resourceRevisionId?: string; /** * Required. Type of this resource. */ type?: | "RESOURCE_TYPE_UNSPECIFIED" | "API_PROXY"; } /** * The result of the assessment. */ export interface GoogleCloudApigeeV1SecurityAssessmentResultScoringResult { /** * The recommendations of the assessment. The key is the "name" of the * assessment (not display_name), and the value are the recommendations. */ assessmentRecommendations?: { [key: string]: GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendation }; /** * The time when resource data was last fetched for this resource. This time * may be different than when the resource was actually updated due to lag in * data collection. */ dataUpdateTime?: Date; /** * The number of failed assessments grouped by its weight. Keys are one of * the following: "MAJOR", "MODERATE", "MINOR". */ failedAssessmentPerWeight?: { [key: string]: number }; /** * The security score of the assessment. */ score?: number; /** * The severity of the assessment. */ severity?: | "SEVERITY_UNSPECIFIED" | "LOW" | "MEDIUM" | "HIGH" | "MINIMAL"; } function serializeGoogleCloudApigeeV1SecurityAssessmentResultScoringResult(data: any): GoogleCloudApigeeV1SecurityAssessmentResultScoringResult { return { ...data, dataUpdateTime: data["dataUpdateTime"] !== undefined ? data["dataUpdateTime"].toISOString() : undefined, }; } function deserializeGoogleCloudApigeeV1SecurityAssessmentResultScoringResult(data: any): GoogleCloudApigeeV1SecurityAssessmentResultScoringResult { return { ...data, dataUpdateTime: data["dataUpdateTime"] !== undefined ? new Date(data["dataUpdateTime"]) : undefined, }; } /** * The message format of a recommendation from the assessment. */ export interface GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendation { /** * The display name of the assessment. */ displayName?: string; /** * The recommended steps of the assessment. */ recommendations?: GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendationRecommendation[]; /** * Score impact indicates the impact on the overall score if the assessment * were to pass. */ scoreImpact?: number; /** * Verdict indicates the assessment result. */ verdict?: | "VERDICT_UNSPECIFIED" | "PASS" | "FAIL"; /** * The weight of the assessment which was set in the profile. */ weight?: | "WEIGHT_UNSPECIFIED" | "MINOR" | "MODERATE" | "MAJOR"; } /** * The format of the assessment recommendation. */ export interface GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendationRecommendation { /** * The description of the recommendation. */ description?: string; /** * The link for the recommendation. */ link?: GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendationRecommendationLink; } /** * The format for a link in the recommendation. */ export interface GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendationRecommendationLink { /** * The text of the url. (ie: "Learn more") */ text?: string; /** * The link itself. */ uri?: string; } /** * Represents an SecurityIncident resource. */ export interface GoogleCloudApigeeV1SecurityIncident { /** * Output only. Detection types which are part of the incident. Examples: * Flooder, OAuth Abuser, Static Content Scraper, Anomaly Detection. */ readonly detectionTypes?: string[]; /** * Optional. Display name of the security incident. */ displayName?: string; /** * Output only. The time when events associated with the incident were first * detected. */ readonly firstDetectedTime?: Date; /** * Output only. The time when events associated with the incident were last * detected. */ readonly lastDetectedTime?: Date; /** * Output only. The time when the incident observability was last changed. */ readonly lastObservabilityChangeTime?: Date; /** * Immutable. Name of the security incident resource. Format: * organizations/{org}/environments/{environment}/securityIncidents/{incident} * Example: * organizations/apigee-org/environments/dev/securityIncidents/1234-5678-9101-1111 */ name?: string; /** * Optional. Indicates if the user archived this incident. */ observability?: | "OBSERVABILITY_UNSPECIFIED" | "ACTIVE" | "ARCHIVED"; /** * Output only. Risk level of the incident. */ readonly riskLevel?: | "RISK_LEVEL_UNSPECIFIED" | "LOW" | "MODERATE" | "SEVERE"; /** * Total traffic detected as part of the incident. */ trafficCount?: bigint; } function serializeGoogleCloudApigeeV1SecurityIncident(data: any): GoogleCloudApigeeV1SecurityIncident { return { ...data, trafficCount: data["trafficCount"] !== undefined ? String(data["trafficCount"]) : undefined, }; } function deserializeGoogleCloudApigeeV1SecurityIncident(data: any): GoogleCloudApigeeV1SecurityIncident { return { ...data, firstDetectedTime: data["firstDetectedTime"] !== undefined ? new Date(data["firstDetectedTime"]) : undefined, lastDetectedTime: data["lastDetectedTime"] !== undefined ? new Date(data["lastDetectedTime"]) : undefined, lastObservabilityChangeTime: data["lastObservabilityChangeTime"] !== undefined ? new Date(data["lastObservabilityChangeTime"]) : undefined, trafficCount: data["trafficCount"] !== undefined ? BigInt(data["trafficCount"]) : undefined, }; } /** * Represents a SecurityProfile resource. */ export interface GoogleCloudApigeeV1SecurityProfile { /** * Description of the security profile. */ description?: string; /** * DEPRECATED: DO NOT USE Display name of the security profile. */ displayName?: string; /** * List of environments attached to security profile. */ environments?: GoogleCloudApigeeV1SecurityProfileEnvironment[]; /** * Output only. Maximum security score that can be generated by this profile. */ readonly maxScore?: number; /** * Output only. Minimum security score that can be generated by this profile. */ readonly minScore?: number; /** * Immutable. Name of the security profile resource. Format: * organizations/{org}/securityProfiles/{profile} */ name?: string; /** * Required. Customized profile configuration that computes the security * score. */ profileConfig?: GoogleCloudApigeeV1ProfileConfig; /** * Output only. The time when revision was created. */ readonly revisionCreateTime?: Date; /** * Output only. Revision ID of the security profile. */ readonly revisionId?: bigint; /** * Output only. DEPRECATED: DO NOT USE The time when revision was published. * Once published, the security profile revision cannot be updated further and * can be attached to environments. */ readonly revisionPublishTime?: Date; /** * Output only. The time when revision was updated. */ readonly revisionUpdateTime?: Date; /** * List of profile scoring configs in this revision. */ scoringConfigs?: GoogleCloudApigeeV1SecurityProfileScoringConfig[]; } /** * Environment information of attached environments. Scoring an environment is * enabled only if it is attached to a security profile. */ export interface GoogleCloudApigeeV1SecurityProfileEnvironment { /** * Output only. Time at which environment was attached to the security * profile. */ readonly attachTime?: Date; /** * Output only. Name of the environment. */ readonly environment?: string; } /** * Represents a SecurityProfileEnvironmentAssociation resource. */ export interface GoogleCloudApigeeV1SecurityProfileEnvironmentAssociation { /** * Output only. The time when environment was attached to the security * profile. */ readonly attachTime?: Date; /** * Immutable. Name of the environment that the profile is attached to. */ name?: string; /** * DEPRECATED: DO NOT USE Revision ID of the security profile. */ securityProfileRevisionId?: bigint; } function serializeGoogleCloudApigeeV1SecurityProfileEnvironmentAssociation(data: any): GoogleCloudApigeeV1SecurityProfileEnvironmentAssociation { return { ...data, securityProfileRevisionId: data["securityProfileRevisionId"] !== undefined ? String(data["securityProfileRevisionId"]) : undefined, }; } function deserializeGoogleCloudApigeeV1SecurityProfileEnvironmentAssociation(data: any): GoogleCloudApigeeV1SecurityProfileEnvironmentAssociation { return { ...data, attachTime: data["attachTime"] !== undefined ? new Date(data["attachTime"]) : undefined, securityProfileRevisionId: data["securityProfileRevisionId"] !== undefined ? BigInt(data["securityProfileRevisionId"]) : undefined, }; } /** * Security configurations to manage scoring. */ export interface GoogleCloudApigeeV1SecurityProfileScoringConfig { /** * Description of the config. */ description?: string; /** * Path of the component config used for scoring. */ scorePath?: string; /** * Title of the config. */ title?: string; } /** * Security profile for risk assessment version 2. */ export interface GoogleCloudApigeeV1SecurityProfileV2 { /** * Output only. The time of the security profile creation. */ readonly createTime?: Date; /** * Optional. The description of the security profile. */ description?: string; /** * Output only. Whether the security profile is google defined. */ readonly googleDefined?: boolean; /** * Identifier. Name of the security profile v2 resource. Format: * organizations/{org}/securityProfilesV2/{profile} */ name?: string; /** * Required. The configuration for each assessment in this profile. Key is * the name/id of the assessment. */ profileAssessmentConfigs?: { [key: string]: GoogleCloudApigeeV1SecurityProfileV2ProfileAssessmentConfig }; /** * Output only. The time of the security profile update. */ readonly updateTime?: Date; } /** * The configuration definition for a specific assessment. */ export interface GoogleCloudApigeeV1SecurityProfileV2ProfileAssessmentConfig { /** * The weight of the assessment. */ weight?: | "WEIGHT_UNSPECIFIED" | "MINOR" | "MODERATE" | "MAJOR"; } /** * SecurityReport saves all the information about the created security report. */ export interface GoogleCloudApigeeV1SecurityReport { /** * Creation time of the query. */ created?: string; /** * Display Name specified by the user. */ displayName?: string; /** * Hostname is available only when query is executed at host level. */ envgroupHostname?: string; /** * Error is set when query fails. */ error?: string; /** * ExecutionTime is available only after the query is completed. */ executionTime?: string; /** * Contains information like metrics, dimenstions etc of the Security Report. */ queryParams?: GoogleCloudApigeeV1SecurityReportMetadata; /** * Report Definition ID. */ reportDefinitionId?: string; /** * Result is available only after the query is completed. */ result?: GoogleCloudApigeeV1SecurityReportResultMetadata; /** * ResultFileSize is available only after the query is completed. */ resultFileSize?: string; /** * ResultRows is available only after the query is completed. */ resultRows?: bigint; /** * Self link of the query. Example: * `/organizations/myorg/environments/myenv/securityReports/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd` * or following format if query is running at host level: * `/organizations/myorg/hostSecurityReports/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd` */ self?: string; /** * Query state could be "enqueued", "running", "completed", "expired" and * "failed". */ state?: string; /** * Output only. Last updated timestamp for the query. */ readonly updated?: string; } function serializeGoogleCloudApigeeV1SecurityReport(data: any): GoogleCloudApigeeV1SecurityReport { return { ...data, queryParams: data["queryParams"] !== undefined ? serializeGoogleCloudApigeeV1SecurityReportMetadata(data["queryParams"]) : undefined, resultRows: data["resultRows"] !== undefined ? String(data["resultRows"]) : undefined, }; } function deserializeGoogleCloudApigeeV1SecurityReport(data: any): GoogleCloudApigeeV1SecurityReport { return { ...data, queryParams: data["queryParams"] !== undefined ? deserializeGoogleCloudApigeeV1SecurityReportMetadata(data["queryParams"]) : undefined, resultRows: data["resultRows"] !== undefined ? BigInt(data["resultRows"]) : undefined, }; } /** * Metadata for the security report. */ export interface GoogleCloudApigeeV1SecurityReportMetadata { /** * Dimensions of the SecurityReport. */ dimensions?: string[]; /** * End timestamp of the query range. */ endTimestamp?: Date; /** * Metrics of the SecurityReport. Example: * ["name:bot_count,func:sum,alias:sum_bot_count"] */ metrics?: string[]; /** * MIME type / Output format. */ mimeType?: string; /** * Start timestamp of the query range. */ startTimestamp?: Date; /** * Query GroupBy time unit. Example: "seconds", "minute", "hour" */ timeUnit?: string; } function serializeGoogleCloudApigeeV1SecurityReportMetadata(data: any): GoogleCloudApigeeV1SecurityReportMetadata { return { ...data, endTimestamp: data["endTimestamp"] !== undefined ? data["endTimestamp"].toISOString() : undefined, startTimestamp: data["startTimestamp"] !== undefined ? data["startTimestamp"].toISOString() : undefined, }; } function deserializeGoogleCloudApigeeV1SecurityReportMetadata(data: any): GoogleCloudApigeeV1SecurityReportMetadata { return { ...data, endTimestamp: data["endTimestamp"] !== undefined ? new Date(data["endTimestamp"]) : undefined, startTimestamp: data["startTimestamp"] !== undefined ? new Date(data["startTimestamp"]) : undefined, }; } /** * Body structure when user makes a request to create a security report. */ export interface GoogleCloudApigeeV1SecurityReportQuery { /** * Delimiter used in the CSV file, if `outputFormat` is set to `csv`. * Defaults to the `,` (comma) character. Supported delimiter characters * include comma (`,`), pipe (`|`), and tab (`\t`). */ csvDelimiter?: string; /** * A list of dimensions. * https://docs.apigee.com/api-platform/analytics/analytics-reference#dimensions */ dimensions?: string[]; /** * Security Report display name which users can specify. */ displayName?: string; /** * Hostname needs to be specified if query intends to run at host level. This * field is only allowed when query is submitted by CreateHostSecurityReport * where analytics data will be grouped by organization and hostname. */ envgroupHostname?: string; /** * Boolean expression that can be used to filter data. Filter expressions can * be combined using AND/OR terms and should be fully parenthesized to avoid * ambiguity. See Analytics metrics, dimensions, and filters reference * https://docs.apigee.com/api-platform/analytics/analytics-reference for more * information on the fields available to filter on. For more information on * the tokens that you use to build filter expressions, see Filter expression * syntax. * https://docs.apigee.com/api-platform/analytics/asynch-reports-api#filter-expression-syntax */ filter?: string; /** * Time unit used to group the result set. Valid values include: second, * minute, hour, day, week, or month. If a query includes groupByTimeUnit, * then the result is an aggregation based on the specified time unit and the * resultant timestamp does not include milliseconds precision. If a query * omits groupByTimeUnit, then the resultant timestamp includes milliseconds * precision. */ groupByTimeUnit?: string; /** * Maximum number of rows that can be returned in the result. */ limit?: number; /** * A list of Metrics. */ metrics?: GoogleCloudApigeeV1SecurityReportQueryMetric[]; /** * Valid values include: `csv` or `json`. Defaults to `json`. Note: Configure * the delimiter for CSV output using the csvDelimiter property. */ mimeType?: string; /** * Report Definition ID. */ reportDefinitionId?: string; /** * Required. Time range for the query. Can use the following predefined * strings to specify the time range: `last60minutes` `last24hours` * `last7days` Or, specify the timeRange as a structure describing start and * end timestamps in the ISO format: yyyy-mm-ddThh:mm:ssZ. Example: * "timeRange": { "start": "2018-07-29T00:13:00Z", "end": * "2018-08-01T00:18:00Z" } */ timeRange?: any; } /** * Metric of the Query */ export interface GoogleCloudApigeeV1SecurityReportQueryMetric { /** * Aggregation function: avg, min, max, or sum. */ aggregationFunction?: string; /** * Alias for the metric. Alias will be used to replace metric name in query * results. */ alias?: string; /** * Required. Metric name. */ name?: string; /** * One of `+`, `-`, `/`, `%`, `*`. */ operator?: string; /** * Operand value should be provided when operator is set. */ value?: string; } /** * Contains informations about the security report results. */ export interface GoogleCloudApigeeV1SecurityReportResultMetadata { /** * Output only. Expire_time is set to 7 days after report creation. Query * result will be unaccessable after this time. Example: * "2021-05-04T13:38:52-07:00" */ readonly expires?: string; /** * Self link of the query results. Example: * `/organizations/myorg/environments/myenv/securityReports/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result` * or following format if query is running at host level: * `/organizations/myorg/hostSecurityReports/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result` */ self?: string; } /** * The response for security report result view APIs. */ export interface GoogleCloudApigeeV1SecurityReportResultView { /** * Error code when there is a failure. */ code?: number; /** * Error message when there is a failure. */ error?: string; /** * Metadata contains information like metrics, dimenstions etc of the * security report. */ metadata?: GoogleCloudApigeeV1SecurityReportMetadata; /** * Rows of security report result. Each row is a JSON object. Example: * {sum(message_count): 1, developer_app: "(not set)",…} */ rows?: any[]; /** * State of retrieving ResultView. */ state?: string; } function serializeGoogleCloudApigeeV1SecurityReportResultView(data: any): GoogleCloudApigeeV1SecurityReportResultView { return { ...data, metadata: data["metadata"] !== undefined ? serializeGoogleCloudApigeeV1SecurityReportMetadata(data["metadata"]) : undefined, }; } function deserializeGoogleCloudApigeeV1SecurityReportResultView(data: any): GoogleCloudApigeeV1SecurityReportResultView { return { ...data, metadata: data["metadata"] !== undefined ? deserializeGoogleCloudApigeeV1SecurityReportMetadata(data["metadata"]) : undefined, }; } /** * SecuritySettings reflects the current state of the SecuritySettings feature. */ export interface GoogleCloudApigeeV1SecuritySettings { /** * Optional. If true the user consents to the use of ML models for Abuse * detection. */ mlRetrainingFeedbackEnabled?: boolean; /** * Identifier. Full resource name is always * `organizations/{org}/securitySettings`. */ name?: string; } export interface GoogleCloudApigeeV1ServiceIssuersMapping { /** * List of trusted issuer email ids. */ emailIds?: string[]; /** * String indicating the Apigee service name. */ service?: string; } /** * Session carries the debug session id and its creation time. */ export interface GoogleCloudApigeeV1Session { /** * The debug session ID. */ id?: string; /** * The first transaction creation timestamp in millisecond, recorded by UAP. */ timestampMs?: bigint; } function serializeGoogleCloudApigeeV1Session(data: any): GoogleCloudApigeeV1Session { return { ...data, timestampMs: data["timestampMs"] !== undefined ? String(data["timestampMs"]) : undefined, }; } function deserializeGoogleCloudApigeeV1Session(data: any): GoogleCloudApigeeV1Session { return { ...data, timestampMs: data["timestampMs"] !== undefined ? BigInt(data["timestampMs"]) : undefined, }; } /** * Request for SetAddonEnablement. */ export interface GoogleCloudApigeeV1SetAddonEnablementRequest { /** * If the Analytics should be enabled in the environment. */ analyticsEnabled?: boolean; /** * If the API Security should be enabled in the environment. */ apiSecurityEnabled?: boolean; } /** * Request for SetAddons. */ export interface GoogleCloudApigeeV1SetAddonsRequest { /** * Required. Add-on configurations. */ addonsConfig?: GoogleCloudApigeeV1AddonsConfig; } /** * The metadata describing a shared flow */ export interface GoogleCloudApigeeV1SharedFlow { /** * The id of the most recently created revision for this shared flow. */ latestRevisionId?: string; /** * Metadata describing the shared flow. */ metaData?: GoogleCloudApigeeV1EntityMetadata; /** * The ID of the shared flow. */ name?: string; /** * A list of revisions of this shared flow. */ revision?: string[]; } function serializeGoogleCloudApigeeV1SharedFlow(data: any): GoogleCloudApigeeV1SharedFlow { return { ...data, metaData: data["metaData"] !== undefined ? serializeGoogleCloudApigeeV1EntityMetadata(data["metaData"]) : undefined, }; } function deserializeGoogleCloudApigeeV1SharedFlow(data: any): GoogleCloudApigeeV1SharedFlow { return { ...data, metaData: data["metaData"] !== undefined ? deserializeGoogleCloudApigeeV1EntityMetadata(data["metaData"]) : undefined, }; } /** * The metadata describing a shared flow revision. */ export interface GoogleCloudApigeeV1SharedFlowRevision { /** * The version of the configuration schema to which this shared flow * conforms. The only supported value currently is majorVersion 4 and * minorVersion 0. This setting may be used in the future to enable evolution * of the shared flow format. */ configurationVersion?: GoogleCloudApigeeV1ConfigVersion; /** * A textual description of the shared flow revision. */ contextInfo?: string; /** * Time at which this shared flow revision was created, in milliseconds since * epoch. */ createdAt?: bigint; /** * Description of the shared flow revision. */ description?: string; /** * The human readable name of this shared flow. */ displayName?: string; /** * A Key-Value map of metadata about this shared flow revision. */ entityMetaDataAsProperties?: { [key: string]: string }; /** * Time at which this shared flow revision was most recently modified, in * milliseconds since epoch. */ lastModifiedAt?: bigint; /** * The resource ID of the parent shared flow. */ name?: string; /** * A list of policy names included in this shared flow revision. */ policies?: string[]; /** * The resource files included in this shared flow revision. */ resourceFiles?: GoogleCloudApigeeV1ResourceFiles; /** * A list of the resources included in this shared flow revision formatted as * "{type}://{name}". */ resources?: string[]; /** * The resource ID of this revision. */ revision?: string; /** * A list of the shared flow names included in this shared flow revision. */ sharedFlows?: string[]; /** * The string "Application" */ type?: string; } function serializeGoogleCloudApigeeV1SharedFlowRevision(data: any): GoogleCloudApigeeV1SharedFlowRevision { return { ...data, createdAt: data["createdAt"] !== undefined ? String(data["createdAt"]) : undefined, lastModifiedAt: data["lastModifiedAt"] !== undefined ? String(data["lastModifiedAt"]) : undefined, }; } function deserializeGoogleCloudApigeeV1SharedFlowRevision(data: any): GoogleCloudApigeeV1SharedFlowRevision { return { ...data, createdAt: data["createdAt"] !== undefined ? BigInt(data["createdAt"]) : undefined, lastModifiedAt: data["lastModifiedAt"] !== undefined ? BigInt(data["lastModifiedAt"]) : undefined, }; } /** * Encapsulates a `stats` response. */ export interface GoogleCloudApigeeV1Stats { /** * List of query results on the environment level. */ environments?: GoogleCloudApigeeV1StatsEnvironmentStats[]; /** * List of query results grouped by host. */ hosts?: GoogleCloudApigeeV1StatsHostStats[]; /** * Metadata information. */ metaData?: GoogleCloudApigeeV1Metadata; } /** * Encapsulates the environment wrapper: ``` "environments": [ { "metrics": [ { * "name": "sum(message_count)", "values": [ "2.52056245E8" ] } ], "name": * "prod" } ]``` */ export interface GoogleCloudApigeeV1StatsEnvironmentStats { /** * List of metrics grouped under dimensions. */ dimensions?: GoogleCloudApigeeV1DimensionMetric[]; /** * In the final response, only one of the following fields will be present * based on the dimensions provided. If no dimensions are provided, then only * top-level metrics is provided. If dimensions are included, then there will * be a top-level dimensions field under environments which will contain * metrics values and the dimension name. Example: ``` "environments": [ { * "dimensions": [ { "metrics": [ { "name": "sum(message_count)", "values": [ * "2.14049521E8" ] } ], "name": "nit_proxy" } ], "name": "prod" } ]``` or * ```"environments": [ { "metrics": [ { "name": "sum(message_count)", * "values": [ "2.19026331E8" ] } ], "name": "prod" } ]``` List of metric * values. */ metrics?: GoogleCloudApigeeV1Metric[]; /** * Name of the environment. */ name?: string; } /** * Encapsulates the hostname wrapper: ``` "hosts": [ { "metrics": [ { "name": * "sum(message_count)", "values": [ "2.52056245E8" ] } ], "name": "example.com" * } ]``` */ export interface GoogleCloudApigeeV1StatsHostStats { /** * List of metrics grouped under dimensions. */ dimensions?: GoogleCloudApigeeV1DimensionMetric[]; /** * In the final response, only one of the following fields will be present * based on the dimensions provided. If no dimensions are provided, then only * the top-level metrics are provided. If dimensions are included, then there * will be a top-level dimensions field under hostnames which will contain * metrics values and the dimension name. Example: ``` "hosts": [ { * "dimensions": [ { "metrics": [ { "name": "sum(message_count)", "values": [ * "2.14049521E8" ] } ], "name": "nit_proxy" } ], "name": "example.com" } ]``` * OR ```"hosts": [ { "metrics": [ { "name": "sum(message_count)", "values": [ * "2.19026331E8" ] } ], "name": "example.com" } ]``` List of metric values. */ metrics?: GoogleCloudApigeeV1Metric[]; /** * Hostname used in query. */ name?: string; } /** * Pub/Sub subscription of an environment. */ export interface GoogleCloudApigeeV1Subscription { /** * Full name of the Pub/Sub subcription. Use the following structure in your * request: `subscription "projects/foo/subscription/bar"` */ name?: string; } export interface GoogleCloudApigeeV1SyncAuthorization { /** * Entity tag (ETag) used for optimistic concurrency control as a way to help * prevent simultaneous updates from overwriting each other. For example, when * you call [getSyncAuthorization](organizations/getSyncAuthorization) an ETag * is returned in the response. Pass that ETag when calling the * [setSyncAuthorization](organizations/setSyncAuthorization) to ensure that * you are updating the correct version. If you don't pass the ETag in the * call to `setSyncAuthorization`, then the existing authorization is * overwritten indiscriminately. **Note**: We strongly recommend that you use * the ETag in the read-modify-write cycle to avoid race conditions. */ etag?: Uint8Array; /** * Required. Array of service accounts to grant access to control plane * resources, each specified using the following format: `serviceAccount:` * service-account-name. The service-account-name is formatted like an email * address. For example: * `my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com` * You might specify multiple service accounts, for example, if you have * multiple environments and wish to assign a unique service account to each * one. The service accounts must have **Apigee Synchronizer Manager** role. * See also [Create service * accounts](https://cloud.google.com/apigee/docs/hybrid/latest/sa-about#create-the-service-accounts). */ identities?: string[]; } function serializeGoogleCloudApigeeV1SyncAuthorization(data: any): GoogleCloudApigeeV1SyncAuthorization { return { ...data, etag: data["etag"] !== undefined ? encodeBase64(data["etag"]) : undefined, }; } function deserializeGoogleCloudApigeeV1SyncAuthorization(data: any): GoogleCloudApigeeV1SyncAuthorization { return { ...data, etag: data["etag"] !== undefined ? decodeBase64(data["etag"] as string) : undefined, }; } /** * TargetServer configuration. TargetServers are used to decouple a proxy * TargetEndpoint HTTPTargetConnections from concrete URLs for backend services. */ export interface GoogleCloudApigeeV1TargetServer { /** * Optional. A human-readable description of this TargetServer. */ description?: string; /** * Required. The host name this target connects to. Value must be a valid * hostname as described by RFC-1123. */ host?: string; /** * Optional. Enabling/disabling a TargetServer is useful when TargetServers * are used in load balancing configurations, and one or more TargetServers * need to taken out of rotation periodically. Defaults to true. */ isEnabled?: boolean; /** * Required. The resource id of this target server. Values must match the * regular expression */ name?: string; /** * Required. The port number this target connects to on the given host. Value * must be between 1 and 65535, inclusive. */ port?: number; /** * Immutable. The protocol used by this TargetServer. */ protocol?: | "PROTOCOL_UNSPECIFIED" | "HTTP" | "HTTP2" | "GRPC_TARGET" | "GRPC" | "EXTERNAL_CALLOUT"; /** * Optional. Specifies TLS configuration info for this TargetServer. The JSON * name is `sSLInfo` for legacy/backwards compatibility reasons -- Edge * originally supported SSL, and the name is still used for TLS configuration. */ sSLInfo?: GoogleCloudApigeeV1TlsInfo; } export interface GoogleCloudApigeeV1TargetServerConfig { /** * Whether the target server is enabled. An empty/omitted value for this * field should be interpreted as true. */ enabled?: boolean; /** * Host name of the target server. */ host?: string; /** * Target server revision name in the following format: * `organizations/{org}/environments/{env}/targetservers/{targetserver}/revisions/{rev}` */ name?: string; /** * Port number for the target server. */ port?: number; /** * The protocol used by this target server. */ protocol?: | "PROTOCOL_UNSPECIFIED" | "HTTP" | "HTTP2" | "GRPC_TARGET" | "GRPC" | "EXTERNAL_CALLOUT"; /** * TLS settings for the target server. */ tlsInfo?: GoogleCloudApigeeV1TlsInfoConfig; } /** * The response for TestDatastore */ export interface GoogleCloudApigeeV1TestDatastoreResponse { /** * Output only. Error message of test connection failure */ readonly error?: string; /** * Output only. It could be `completed` or `failed` */ readonly state?: string; } /** * TLS configuration information for virtual hosts and TargetServers. */ export interface GoogleCloudApigeeV1TlsInfo { /** * The SSL/TLS cipher suites to be used. For programmable proxies, it must be * one of the cipher suite names listed in: * http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#ciphersuites. * For configurable proxies, it must follow the configuration specified in: * https://commondatastorage.googleapis.com/chromium-boringssl-docs/ssl.h.html#Cipher-suite-configuration. * This setting has no effect for configurable proxies when negotiating TLS * 1.3. */ ciphers?: string[]; /** * Optional. Enables two-way TLS. */ clientAuthEnabled?: boolean; /** * The TLS Common Name of the certificate. */ commonName?: GoogleCloudApigeeV1TlsInfoCommonName; /** * Required. Enables TLS. If false, neither one-way nor two-way TLS will be * enabled. */ enabled?: boolean; /** * TLS is strictly enforced. */ enforce?: boolean; /** * If true, Edge ignores TLS certificate errors. Valid when configuring TLS * for target servers and target endpoints, and when configuring virtual hosts * that use 2-way TLS. When used with a target endpoint/target server, if the * backend system uses SNI and returns a cert with a subject Distinguished * Name (DN) that does not match the hostname, there is no way to ignore the * error and the connection fails. */ ignoreValidationErrors?: boolean; /** * Required if `client_auth_enabled` is true. The resource ID for the alias * containing the private key and cert. */ keyAlias?: string; /** * Required if `client_auth_enabled` is true. The resource ID of the * keystore. */ keyStore?: string; /** * The TLS versioins to be used. */ protocols?: string[]; /** * The resource ID of the truststore. */ trustStore?: string; } export interface GoogleCloudApigeeV1TlsInfoCommonName { /** * The TLS Common Name string of the certificate. */ value?: string; /** * Indicates whether the cert should be matched against as a wildcard cert. */ wildcardMatch?: boolean; } export interface GoogleCloudApigeeV1TlsInfoConfig { /** * List of ciphers that are granted access. */ ciphers?: string[]; /** * Flag that specifies whether client-side authentication is enabled for the * target server. Enables two-way TLS. */ clientAuthEnabled?: boolean; /** * Common name to validate the target server against. */ commonName?: GoogleCloudApigeeV1CommonNameConfig; /** * Flag that specifies whether one-way TLS is enabled. Set to `true` to * enable one-way TLS. */ enabled?: boolean; /** * Flag that enforces TLS settings */ enforce?: boolean; /** * Flag that specifies whether to ignore TLS certificate validation errors. * Set to `true` to ignore errors. */ ignoreValidationErrors?: boolean; /** * Name of the alias used for client-side authentication in the following * format: * `organizations/{org}/environments/{env}/keystores/{keystore}/aliases/{alias}` */ keyAlias?: string; /** * Reference name and alias pair to use for client-side authentication. */ keyAliasReference?: GoogleCloudApigeeV1KeyAliasReference; /** * List of TLS protocols that are granted access. */ protocols?: string[]; /** * Name of the keystore or keystore reference containing trusted certificates * for the server in the following format: * `organizations/{org}/environments/{env}/keystores/{keystore}` or * `organizations/{org}/environments/{env}/references/{reference}` */ trustStore?: string; } /** * TraceConfig defines the configurations in an environment of distributed * trace. */ export interface GoogleCloudApigeeV1TraceConfig { /** * Required. Endpoint of the exporter. */ endpoint?: string; /** * Required. Exporter that is used to view the distributed trace captured * using OpenCensus. An exporter sends traces to any backend that is capable * of consuming them. Recorded spans can be exported by registered exporters. */ exporter?: | "EXPORTER_UNSPECIFIED" | "JAEGER" | "CLOUD_TRACE"; /** * Distributed trace configuration for all API proxies in an environment. You * can also override the configuration for a specific API proxy using the * distributed trace configuration overrides API. */ samplingConfig?: GoogleCloudApigeeV1TraceSamplingConfig; } /** * A representation of a configuration override. */ export interface GoogleCloudApigeeV1TraceConfigOverride { /** * ID of the API proxy that will have its trace configuration overridden. */ apiProxy?: string; /** * ID of the trace configuration override specified as a system-generated * UUID. */ name?: string; /** * Trace configuration to override. */ samplingConfig?: GoogleCloudApigeeV1TraceSamplingConfig; } /** * TraceSamplingConfig represents the detail settings of distributed tracing. * Only the fields that are defined in the distributed trace configuration can * be overridden using the distribute trace configuration override APIs. */ export interface GoogleCloudApigeeV1TraceSamplingConfig { /** * Sampler of distributed tracing. OFF is the default value. */ sampler?: | "SAMPLER_UNSPECIFIED" | "OFF" | "PROBABILITY"; /** * Field sampling rate. This value is only applicable when using the * PROBABILITY sampler. The supported values are > 0 and <= 0.5. */ samplingRate?: number; } /** * Request for UpdateAppGroupAppKey */ export interface GoogleCloudApigeeV1UpdateAppGroupAppKeyRequest { /** * Approve or revoke the consumer key by setting this value to `approve` or * `revoke` respectively. The `Content-Type` header, if set, must be set to * `application/octet-stream`, with empty body. */ action?: string; /** * The list of API products that will be associated with the credential. This * list will be appended to the existing list of associated API Products for * this App Key. Duplicates will be ignored. */ apiProducts?: string[]; /** * The new AppGroupKey to be amended. Note that the status can be updated * only via action. */ appGroupAppKey?: GoogleCloudApigeeV1AppGroupAppKey; } function serializeGoogleCloudApigeeV1UpdateAppGroupAppKeyRequest(data: any): GoogleCloudApigeeV1UpdateAppGroupAppKeyRequest { return { ...data, appGroupAppKey: data["appGroupAppKey"] !== undefined ? serializeGoogleCloudApigeeV1AppGroupAppKey(data["appGroupAppKey"]) : undefined, }; } function deserializeGoogleCloudApigeeV1UpdateAppGroupAppKeyRequest(data: any): GoogleCloudApigeeV1UpdateAppGroupAppKeyRequest { return { ...data, appGroupAppKey: data["appGroupAppKey"] !== undefined ? deserializeGoogleCloudApigeeV1AppGroupAppKey(data["appGroupAppKey"]) : undefined, }; } /** * Details on why a resource update failed in the runtime. */ export interface GoogleCloudApigeeV1UpdateError { /** * Status code. */ code?: | "OK" | "CANCELLED" | "UNKNOWN" | "INVALID_ARGUMENT" | "DEADLINE_EXCEEDED" | "NOT_FOUND" | "ALREADY_EXISTS" | "PERMISSION_DENIED" | "UNAUTHENTICATED" | "RESOURCE_EXHAUSTED" | "FAILED_PRECONDITION" | "ABORTED" | "OUT_OF_RANGE" | "UNIMPLEMENTED" | "INTERNAL" | "UNAVAILABLE" | "DATA_LOSS"; /** * User-friendly error message. */ message?: string; /** * The sub resource specific to this error (e.g. a proxy deployed within the * EnvironmentConfig). If empty the error refers to the top level resource. */ resource?: string; /** * A string that uniquely identifies the type of error. This provides a more * reliable means to deduplicate errors across revisions and instances. */ type?: string; } /** * Request for UpdateSecurityIncident. */ export interface GoogleCloudApigeeV1UpdateSecurityIncidentRequest { /** * Required. The security incident to update. Must contain all existing * populated fields of the current incident. */ securityIncident?: GoogleCloudApigeeV1SecurityIncident; /** * Required. The list of fields to update. Allowed fields are: * LINT.IfChange(allowed_update_fields_comment) - observability * LINT.ThenChange() */ updateMask?: string /* FieldMask */; } function serializeGoogleCloudApigeeV1UpdateSecurityIncidentRequest(data: any): GoogleCloudApigeeV1UpdateSecurityIncidentRequest { return { ...data, securityIncident: data["securityIncident"] !== undefined ? serializeGoogleCloudApigeeV1SecurityIncident(data["securityIncident"]) : undefined, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } function deserializeGoogleCloudApigeeV1UpdateSecurityIncidentRequest(data: any): GoogleCloudApigeeV1UpdateSecurityIncidentRequest { return { ...data, securityIncident: data["securityIncident"] !== undefined ? deserializeGoogleCloudApigeeV1SecurityIncident(data["securityIncident"]) : undefined, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } /** * Specifies the audit configuration for a service. The configuration * determines which permission types are logged, and what identities, if any, * are exempted from logging. An AuditConfig must have one or more * AuditLogConfigs. If there are AuditConfigs for both `allServices` and a * specific service, the union of the two AuditConfigs is used for that service: * the log_types specified in each AuditConfig are enabled, and the * exempted_members in each AuditLogConfig are exempted. Example Policy with * multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", * "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ * "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": * "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", * "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": * "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For * sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ * logging. It also exempts `jose@example.com` from DATA_READ logging, and * `aliya@example.com` from DATA_WRITE logging. */ export interface GoogleIamV1AuditConfig { /** * The configuration for logging of each type of permission. */ auditLogConfigs?: GoogleIamV1AuditLogConfig[]; /** * Specifies a service that will be enabled for audit logging. For example, * `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a * special value that covers all services. */ service?: string; } /** * Provides the configuration for logging a type of permissions. Example: { * "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ * "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables * 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from * DATA_READ logging. */ export interface GoogleIamV1AuditLogConfig { /** * Specifies the identities that do not cause logging for this type of * permission. Follows the same format of Binding.members. */ exemptedMembers?: string[]; /** * The log type that this config enables. */ logType?: | "LOG_TYPE_UNSPECIFIED" | "ADMIN_READ" | "DATA_WRITE" | "DATA_READ"; } /** * Associates `members`, or principals, with a `role`. */ export interface GoogleIamV1Binding { /** * The condition that is associated with this binding. If the condition * evaluates to `true`, then this binding applies to the current request. If * the condition evaluates to `false`, then this binding does not apply to the * current request. However, a different role binding might grant the same * role to one or more of the principals in this binding. To learn which * resources support conditions in their IAM policies, see the [IAM * documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition?: GoogleTypeExpr; /** * Specifies the principals requesting access for a Google Cloud resource. * `members` can have the following values: * `allUsers`: A special identifier * that represents anyone who is on the internet; with or without a Google * account. * `allAuthenticatedUsers`: A special identifier that represents * anyone who is authenticated with a Google account or a service account. * Does not include identities that come from external identity providers * (IdPs) through identity federation. * `user:{emailid}`: An email address * that represents a specific Google account. For example, `alice@example.com` * . * `serviceAccount:{emailid}`: An email address that represents a Google * service account. For example, `my-other-app@appspot.gserviceaccount.com`. * * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An * identifier for a [Kubernetes service * account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). * For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * * `group:{emailid}`: An email address that represents a Google group. For * example, `admins@example.com`. * `domain:{domain}`: The G Suite domain * (primary) that represents all the users of that domain. For example, * `google.com` or `example.com`. * * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: * A single identity in a workforce identity pool. * * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: * All workforce identities in a group. * * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: * All workforce identities with a specific attribute value. * * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: * All identities in a workforce identity pool. * * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: * A single identity in a workload identity pool. * * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: * A workload identity pool group. * * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: * All identities in a workload identity pool with a certain attribute. * * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: * All identities in a workload identity pool. * * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique * identifier) representing a user that has been recently deleted. For * example, `alice@example.com?uid=123456789012345678901`. If the user is * recovered, this value reverts to `user:{emailid}` and the recovered user * retains the role in the binding. * * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus * unique identifier) representing a service account that has been recently * deleted. For example, * `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If * the service account is undeleted, this value reverts to * `serviceAccount:{emailid}` and the undeleted service account retains the * role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email * address (plus unique identifier) representing a Google group that has been * recently deleted. For example, * `admins@example.com?uid=123456789012345678901`. If the group is recovered, * this value reverts to `group:{emailid}` and the recovered group retains the * role in the binding. * * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: * Deleted single identity in a workforce identity pool. For example, * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. */ members?: string[]; /** * Role that is assigned to the list of `members`, or principals. For * example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview * of the IAM roles and permissions, see the [IAM * documentation](https://cloud.google.com/iam/docs/roles-overview). For a * list of the available pre-defined roles, see * [here](https://cloud.google.com/iam/docs/understanding-roles). */ role?: string; } /** * An Identity and Access Management (IAM) policy, which specifies access * controls for Google Cloud resources. A `Policy` is a collection of * `bindings`. A `binding` binds one or more `members`, or principals, to a * single `role`. Principals can be user accounts, service accounts, Google * groups, and domains (such as G Suite). A `role` is a named list of * permissions; each `role` can be an IAM predefined role or a user-created * custom role. For some types of Google Cloud resources, a `binding` can also * specify a `condition`, which is a logical expression that allows access to a * resource only if the expression evaluates to `true`. A condition can add * constraints based on attributes of the request, the resource, or both. To * learn which resources support conditions in their IAM policies, see the [IAM * documentation](https://cloud.google.com/iam/help/conditions/resource-policies). * **JSON example:** ``` { "bindings": [ { "role": * "roles/resourcemanager.organizationAdmin", "members": [ * "user:mike@example.com", "group:admins@example.com", "domain:google.com", * "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role": * "roles/resourcemanager.organizationViewer", "members": [ * "user:eve@example.com" ], "condition": { "title": "expirable access", * "description": "Does not grant access after Sep 2020", "expression": * "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], "etag": * "BwWWja0YfJA=", "version": 3 } ``` **YAML example:** ``` bindings: - members: * - user:mike@example.com - group:admins@example.com - domain:google.com - * serviceAccount:my-project-id@appspot.gserviceaccount.com role: * roles/resourcemanager.organizationAdmin - members: - user:eve@example.com * role: roles/resourcemanager.organizationViewer condition: title: expirable * access description: Does not grant access after Sep 2020 expression: * request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= * version: 3 ``` For a description of IAM and its features, see the [IAM * documentation](https://cloud.google.com/iam/docs/). */ export interface GoogleIamV1Policy { /** * Specifies cloud audit logging configuration for this policy. */ auditConfigs?: GoogleIamV1AuditConfig[]; /** * Associates a list of `members`, or principals, with a `role`. Optionally, * may specify a `condition` that determines how and when the `bindings` are * applied. Each of the `bindings` must contain at least one principal. The * `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of * these principals can be Google groups. Each occurrence of a principal * counts towards these limits. For example, if the `bindings` grant 50 * different roles to `user:alice@example.com`, and not to any other * principal, then you can add another 1,450 principals to the `bindings` in * the `Policy`. */ bindings?: GoogleIamV1Binding[]; /** * `etag` is used for optimistic concurrency control as a way to help prevent * simultaneous updates of a policy from overwriting each other. It is * strongly suggested that systems make use of the `etag` in the * read-modify-write cycle to perform policy updates in order to avoid race * conditions: An `etag` is returned in the response to `getIamPolicy`, and * systems are expected to put that etag in the request to `setIamPolicy` to * ensure that their change will be applied to the same version of the policy. * **Important:** If you use IAM Conditions, you must include the `etag` field * whenever you call `setIamPolicy`. If you omit this field, then IAM allows * you to overwrite a version `3` policy with a version `1` policy, and all of * the conditions in the version `3` policy are lost. */ etag?: Uint8Array; /** * Specifies the format of the policy. Valid values are `0`, `1`, and `3`. * Requests that specify an invalid value are rejected. Any operation that * affects conditional role bindings must specify version `3`. This * requirement applies to the following operations: * Getting a policy that * includes a conditional role binding * Adding a conditional role binding to * a policy * Changing a conditional role binding in a policy * Removing any * role binding, with or without a condition, from a policy that includes * conditions **Important:** If you use IAM Conditions, you must include the * `etag` field whenever you call `setIamPolicy`. If you omit this field, then * IAM allows you to overwrite a version `3` policy with a version `1` policy, * and all of the conditions in the version `3` policy are lost. If a policy * does not include any conditions, operations on that policy may specify any * valid version or leave the field unset. To learn which resources support * conditions in their IAM policies, see the [IAM * documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ version?: number; } function serializeGoogleIamV1Policy(data: any): GoogleIamV1Policy { return { ...data, etag: data["etag"] !== undefined ? encodeBase64(data["etag"]) : undefined, }; } function deserializeGoogleIamV1Policy(data: any): GoogleIamV1Policy { return { ...data, etag: data["etag"] !== undefined ? decodeBase64(data["etag"] as string) : undefined, }; } /** * Request message for `SetIamPolicy` method. */ export interface GoogleIamV1SetIamPolicyRequest { /** * REQUIRED: The complete policy to be applied to the `resource`. The size of * the policy is limited to a few 10s of KB. An empty policy is a valid policy * but certain Google Cloud services (such as Projects) might reject them. */ policy?: GoogleIamV1Policy; /** * OPTIONAL: A FieldMask specifying which fields of the policy to modify. * Only the fields in the mask will be modified. If no mask is provided, the * following default mask is used: `paths: "bindings, etag"` */ updateMask?: string /* FieldMask */; } function serializeGoogleIamV1SetIamPolicyRequest(data: any): GoogleIamV1SetIamPolicyRequest { return { ...data, policy: data["policy"] !== undefined ? serializeGoogleIamV1Policy(data["policy"]) : undefined, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } function deserializeGoogleIamV1SetIamPolicyRequest(data: any): GoogleIamV1SetIamPolicyRequest { return { ...data, policy: data["policy"] !== undefined ? deserializeGoogleIamV1Policy(data["policy"]) : undefined, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } /** * Request message for `TestIamPermissions` method. */ export interface GoogleIamV1TestIamPermissionsRequest { /** * The set of permissions to check for the `resource`. Permissions with * wildcards (such as `*` or `storage.*`) are not allowed. For more * information see [IAM * Overview](https://cloud.google.com/iam/docs/overview#permissions). */ permissions?: string[]; } /** * Response message for `TestIamPermissions` method. */ export interface GoogleIamV1TestIamPermissionsResponse { /** * A subset of `TestPermissionsRequest.permissions` that the caller is * allowed. */ permissions?: string[]; } /** * The response message for Operations.ListOperations. */ export interface GoogleLongrunningListOperationsResponse { /** * The standard List next-page token. */ nextPageToken?: string; /** * A list of operations that matches the specified filter in the request. */ operations?: GoogleLongrunningOperation[]; } /** * This resource represents a long-running operation that is the result of a * network API call. */ export interface GoogleLongrunningOperation { /** * If the value is `false`, it means the operation is still in progress. If * `true`, the operation is completed, and either `error` or `response` is * available. */ done?: boolean; /** * The error result of the operation in case of failure or cancellation. */ error?: GoogleRpcStatus; /** * Service-specific metadata associated with the operation. It typically * contains progress information and common metadata such as create time. Some * services might not provide such metadata. Any method that returns a * long-running operation should document the metadata type, if any. */ metadata?: { [key: string]: any }; /** * The server-assigned name, which is only unique within the same service * that originally returns it. If you use the default HTTP mapping, the `name` * should be a resource name ending with `operations/{unique_id}`. */ name?: string; /** * The normal, successful response of the operation. If the original method * returns no data on success, such as `Delete`, the response is * `google.protobuf.Empty`. If the original method is standard * `Get`/`Create`/`Update`, the response should be the resource. For other * methods, the response should have the type `XxxResponse`, where `Xxx` is * the original method name. For example, if the original method name is * `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`. */ response?: { [key: string]: any }; } /** * A generic empty message that you can re-use to avoid defining duplicated * empty messages in your APIs. A typical example is to use it as the request or * the response type of an API method. For instance: service Foo { rpc * Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } */ export interface GoogleProtobufEmpty { } /** * Describes what preconditions have failed. For example, if an RPC failed * because it required the Terms of Service to be acknowledged, it could list * the terms of service violation in the PreconditionFailure message. */ export interface GoogleRpcPreconditionFailure { /** * Describes all precondition violations. */ violations?: GoogleRpcPreconditionFailureViolation[]; } /** * A message type used to describe a single precondition failure. */ export interface GoogleRpcPreconditionFailureViolation { /** * A description of how the precondition failed. Developers can use this * description to understand how to fix the failure. For example: "Terms of * service not accepted". */ description?: string; /** * The subject, relative to the type, that failed. For example, * "google.com/cloud" relative to the "TOS" type would indicate which terms of * service is being referenced. */ subject?: string; /** * The type of PreconditionFailure. We recommend using a service-specific * enum type to define the supported precondition violation subjects. For * example, "TOS" for "Terms of Service violation". */ type?: string; } /** * The `Status` type defines a logical error model that is suitable for * different programming environments, including REST APIs and RPC APIs. It is * used by [gRPC](https://github.com/grpc). Each `Status` message contains three * pieces of data: error code, error message, and error details. You can find * out more about this error model and how to work with it in the [API Design * Guide](https://cloud.google.com/apis/design/errors). */ export interface GoogleRpcStatus { /** * The status code, which should be an enum value of google.rpc.Code. */ code?: number; /** * A list of messages that carry the error details. There is a common set of * message types for APIs to use. */ details?: { [key: string]: any }[]; /** * A developer-facing error message, which should be in English. Any * user-facing error message should be localized and sent in the * google.rpc.Status.details field, or localized by the client. */ message?: string; } /** * Represents a textual expression in the Common Expression Language (CEL) * syntax. CEL is a C-like expression language. The syntax and semantics of CEL * are documented at https://github.com/google/cel-spec. Example (Comparison): * title: "Summary size limit" description: "Determines if a summary is less * than 100 chars" expression: "document.summary.size() < 100" Example * (Equality): title: "Requestor is owner" description: "Determines if requestor * is the document owner" expression: "document.owner == * request.auth.claims.email" Example (Logic): title: "Public documents" * description: "Determine whether the document should be publicly visible" * expression: "document.type != 'private' && document.type != 'internal'" * Example (Data Manipulation): title: "Notification string" description: * "Create a notification string with a timestamp." expression: "'New message * received at ' + string(document.create_time)" The exact variables and * functions that may be referenced within an expression are determined by the * service that evaluates it. See the service documentation for additional * information. */ export interface GoogleTypeExpr { /** * Optional. Description of the expression. This is a longer text which * describes the expression, e.g. when hovered over it in a UI. */ description?: string; /** * Textual representation of an expression in Common Expression Language * syntax. */ expression?: string; /** * Optional. String indicating the location of the expression for error * reporting, e.g. a file name and a position in the file. */ location?: string; /** * Optional. Title for the expression, i.e. a short string describing its * purpose. This can be used e.g. in UIs which allow to enter the expression. */ title?: string; } /** * Represents a time interval, encoded as a Timestamp start (inclusive) and a * Timestamp end (exclusive). The start must be less than or equal to the end. * When the start equals the end, the interval is empty (matches no time). When * both start and end are unspecified, the interval matches any time. */ export interface GoogleTypeInterval { /** * Optional. Exclusive end of the interval. If specified, a Timestamp * matching this interval will have to be before the end. */ endTime?: Date; /** * Optional. Inclusive start of the interval. If specified, a Timestamp * matching this interval will have to be the same or after the start. */ startTime?: Date; } function serializeGoogleTypeInterval(data: any): GoogleTypeInterval { return { ...data, endTime: data["endTime"] !== undefined ? data["endTime"].toISOString() : undefined, startTime: data["startTime"] !== undefined ? data["startTime"].toISOString() : undefined, }; } function deserializeGoogleTypeInterval(data: any): GoogleTypeInterval { return { ...data, endTime: data["endTime"] !== undefined ? new Date(data["endTime"]) : undefined, startTime: data["startTime"] !== undefined ? new Date(data["startTime"]) : undefined, }; } /** * Represents an amount of money with its currency type. */ export interface GoogleTypeMoney { /** * The three-letter currency code defined in ISO 4217. */ currencyCode?: string; /** * Number of nano (10^-9) units of the amount. The value must be between * -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` * must be positive or zero. If `units` is zero, `nanos` can be positive, * zero, or negative. If `units` is negative, `nanos` must be negative or * zero. For example $-1.75 is represented as `units`=-1 and * `nanos`=-750,000,000. */ nanos?: number; /** * The whole units of the amount. For example if `currencyCode` is `"USD"`, * then 1 unit is one US dollar. */ units?: bigint; } function serializeGoogleTypeMoney(data: any): GoogleTypeMoney { return { ...data, units: data["units"] !== undefined ? String(data["units"]) : undefined, }; } function deserializeGoogleTypeMoney(data: any): GoogleTypeMoney { return { ...data, units: data["units"] !== undefined ? BigInt(data["units"]) : undefined, }; } /** * Additional options for Apigee#organizationsAnalyticsDatastoresList. */ export interface OrganizationsAnalyticsDatastoresListOptions { /** * Optional. TargetType is used to fetch all Datastores that match the type */ targetType?: string; } /** * Additional options for Apigee#organizationsApiproductsList. */ export interface OrganizationsApiproductsListOptions { /** * Name of the attribute used to filter the search. */ attributename?: string; /** * Value of the attribute used to filter the search. */ attributevalue?: string; /** * Enter the number of API products you want returned in the API call. The * limit is 1000. */ count?: bigint; /** * Flag that specifies whether to expand the results. Set to `true` to get * expanded details about each API. */ expand?: boolean; /** * Gets a list of API products starting with a specific API product in the * list. For example, if you're returning 50 API products at a time (using the * `count` query parameter), you can view products 50-99 by entering the name * of the 50th API product in the first API (without using `startKey`). * Product name is case sensitive. */ startKey?: string; } function serializeOrganizationsApiproductsListOptions(data: any): OrganizationsApiproductsListOptions { return { ...data, count: data["count"] !== undefined ? String(data["count"]) : undefined, }; } function deserializeOrganizationsApiproductsListOptions(data: any): OrganizationsApiproductsListOptions { return { ...data, count: data["count"] !== undefined ? BigInt(data["count"]) : undefined, }; } /** * Additional options for Apigee#organizationsApiproductsRateplansList. */ export interface OrganizationsApiproductsRateplansListOptions { /** * Number of rate plans to return in the API call. Use with the `startKey` * parameter to provide more targeted filtering. The maximum limit is 1000. * Defaults to 100. */ count?: number; /** * Flag that specifies whether to expand the results. Set to `true` to get * expanded details about each API. Defaults to `false`. */ expand?: boolean; /** * Name of the attribute used for sorting. Valid values include: * `name`: * Name of the rate plan. * `state`: State of the rate plan (`DRAFT`, * `PUBLISHED`). * `startTime`: Time when the rate plan becomes active. * * `endTime`: Time when the rate plan expires. **Note**: Not supported by * Apigee at this time. */ orderBy?: string; /** * Name of the rate plan from which to start displaying the list of rate * plans. If omitted, the list starts from the first item. For example, to * view the rate plans from 51-150, set the value of `startKey` to the name of * the 51st rate plan and set the value of `count` to 100. */ startKey?: string; /** * State of the rate plans (`DRAFT`, `PUBLISHED`) that you want to display. */ state?: | "STATE_UNSPECIFIED" | "DRAFT" | "PUBLISHED"; } /** * Additional options for Apigee#organizationsApisCreate. */ export interface OrganizationsApisCreateOptions { /** * Action to perform when importing an API proxy configuration bundle. Set * this parameter to one of the following values: * `import` to import the API * proxy configuration bundle. * `validate` to validate the API proxy * configuration bundle without importing it. */ action?: string; /** * Name of the API proxy. Restrict the characters used to: A-Za-z0-9._- */ name?: string; /** * Ignored. All uploads are validated regardless of the value of this field. * Maintained for compatibility with Apigee Edge API. */ validate?: boolean; } /** * Additional options for Apigee#organizationsApisKeyvaluemapsEntriesList. */ export interface OrganizationsApisKeyvaluemapsEntriesListOptions { /** * Optional. Maximum number of key value entries to return. If unspecified, * at most 100 entries will be returned. */ pageSize?: number; /** * Optional. Page token. If provides, must be a valid key value entry * returned from a previous call that can be used to retrieve the next page. */ pageToken?: string; } /** * Additional options for Apigee#organizationsApisList. */ export interface OrganizationsApisListOptions { /** * Flag that specifies whether to include API proxy metadata in the response. */ includeMetaData?: boolean; /** * Flag that specifies whether to include a list of revisions in the * response. */ includeRevisions?: boolean; } /** * Additional options for Apigee#organizationsApisPatch. */ export interface OrganizationsApisPatchOptions { /** * Required. The list of fields to update. */ updateMask?: string /* FieldMask */; } function serializeOrganizationsApisPatchOptions(data: any): OrganizationsApisPatchOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } function deserializeOrganizationsApisPatchOptions(data: any): OrganizationsApisPatchOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } /** * Additional options for Apigee#organizationsApisRevisionsGet. */ export interface OrganizationsApisRevisionsGetOptions { /** * Format used when downloading the API proxy configuration revision. Set to * `bundle` to download the API proxy configuration revision as a zip file. */ format?: string; } /** * Additional options for * Apigee#organizationsApisRevisionsUpdateApiProxyRevision. */ export interface OrganizationsApisRevisionsUpdateApiProxyRevisionOptions { /** * Ignored. All uploads are validated regardless of the value of this field. * Maintained for compatibility with Apigee Edge API. */ validate?: boolean; } /** * Additional options for * Apigee#organizationsAppgroupsAppsKeysApiproductsUpdateAppGroupAppKeyApiProduct. */ export interface OrganizationsAppgroupsAppsKeysApiproductsUpdateAppGroupAppKeyApiProductOptions { /** * Approve or revoke the consumer key by setting this value to `approve` or * `revoke` respectively. The `Content-Type` header, if set, must be set to * `application/octet-stream`, with empty body. */ action?: string; } /** * Additional options for Apigee#organizationsAppgroupsAppsList. */ export interface OrganizationsAppgroupsAppsListOptions { /** * Optional. Maximum number entries to return. If unspecified, at most 1000 * entries will be returned. */ pageSize?: number; /** * Optional. Page token. If provides, must be a valid AppGroup app returned * from a previous call that can be used to retrieve the next page. */ pageToken?: string; } /** * Additional options for Apigee#organizationsAppgroupsAppsUpdate. */ export interface OrganizationsAppgroupsAppsUpdateOptions { /** * Approve or revoke the consumer key by setting this value to `approve` or * `revoke`. The `Content-Type` header must be set to * `application/octet-stream`, with empty body. */ action?: string; } /** * Additional options for Apigee#organizationsAppgroupsList. */ export interface OrganizationsAppgroupsListOptions { /** * The filter expression to be used to get the list of AppGroups, where * filtering can be done on status, channelId or channelUri of the app group. * Examples: filter=status=active", filter=channelId=, filter=channelUri= */ filter?: string; /** * Count of AppGroups a single page can have in the response. If unspecified, * at most 1000 AppGroups will be returned. The maximum value is 1000; values * above 1000 will be coerced to 1000. */ pageSize?: number; /** * The starting index record for listing the AppGroups. */ pageToken?: string; } /** * Additional options for Apigee#organizationsAppgroupsUpdate. */ export interface OrganizationsAppgroupsUpdateOptions { /** * Activate or de-activate the AppGroup by setting the action as `active` or * `inactive`. The `Content-Type` header must be set to * `application/octet-stream`, with empty body. */ action?: string; } /** * Additional options for Apigee#organizationsAppsList. */ export interface OrganizationsAppsListOptions { /** * API product. */ apiProduct?: string; /** * Optional. 'apptype' is no longer available. Use a 'filter' instead. */ apptype?: string; /** * Optional. Flag that specifies whether to return an expanded list of apps * for the organization. Defaults to `false`. */ expand?: boolean; /** * Optional. The filter expression to be used to get the list of apps, where * filtering can be done on developerEmail, apiProduct, consumerKey, status, * appId, appName, appType and appGroup. Examples: * "developerEmail=foo@bar.com", "appType=AppGroup", or "appType=Developer" * "filter" is supported from ver 1.10.0 and above. */ filter?: string; /** * Optional. Comma-separated list of app IDs on which to filter. */ ids?: string; /** * Optional. Flag that specifies whether to include credentials in the * response. */ includeCred?: boolean; /** * Optional. Key status of the app. Valid values include `approved` or * `revoked`. Defaults to `approved`. */ keyStatus?: string; /** * Optional. Count of apps a single page can have in the response. If * unspecified, at most 100 apps will be returned. The maximum value is 100; * values above 100 will be coerced to 100. "page_size" is supported from ver * 1.10.0 and above. */ pageSize?: number; /** * Optional. The starting index record for listing the developers. * "page_token" is supported from ver 1.10.0 and above. */ pageToken?: string; /** * Optional. Maximum number of app IDs to return. Defaults to 10000. */ rows?: bigint; /** * Returns the list of apps starting from the specified app ID. */ startKey?: string; /** * Optional. Filter by the status of the app. Valid values are `approved` or * `revoked`. Defaults to `approved`. */ status?: string; } function serializeOrganizationsAppsListOptions(data: any): OrganizationsAppsListOptions { return { ...data, rows: data["rows"] !== undefined ? String(data["rows"]) : undefined, }; } function deserializeOrganizationsAppsListOptions(data: any): OrganizationsAppsListOptions { return { ...data, rows: data["rows"] !== undefined ? BigInt(data["rows"]) : undefined, }; } /** * Additional options for Apigee#organizationsCreate. */ export interface OrganizationsCreateOptions { /** * Required. Name of the Google Cloud project in which to associate the * Apigee organization. Pass the information as a query parameter using the * following structure in your request: `projects/` */ parent?: string; } /** * Additional options for Apigee#organizationsDatacollectorsCreate. */ export interface OrganizationsDatacollectorsCreateOptions { /** * ID of the data collector. Overrides any ID in the data collector resource. * Must be a string beginning with `dc_` that contains only letters, numbers, * and underscores. */ dataCollectorId?: string; } /** * Additional options for Apigee#organizationsDatacollectorsList. */ export interface OrganizationsDatacollectorsListOptions { /** * Maximum number of data collectors to return. The page size defaults to 25. */ pageSize?: number; /** * Page token, returned from a previous ListDataCollectors call, that you can * use to retrieve the next page. */ pageToken?: string; } /** * Additional options for Apigee#organizationsDatacollectorsPatch. */ export interface OrganizationsDatacollectorsPatchOptions { /** * List of fields to be updated. */ updateMask?: string /* FieldMask */; } function serializeOrganizationsDatacollectorsPatchOptions(data: any): OrganizationsDatacollectorsPatchOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } function deserializeOrganizationsDatacollectorsPatchOptions(data: any): OrganizationsDatacollectorsPatchOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } /** * Additional options for Apigee#organizationsDelete. */ export interface OrganizationsDeleteOptions { /** * Optional. This setting is applicable only for organizations that are * soft-deleted (i.e., BillingType is not EVALUATION). It controls how long * Organization data will be retained after the initial delete operation * completes. During this period, the Organization may be restored to its last * known state. After this period, the Organization will no longer be able to * be restored. **Note: During the data retention period specified using this * field, the Apigee organization cannot be recreated in the same Google Cloud * project.** */ retention?: | "DELETION_RETENTION_UNSPECIFIED" | "MINIMUM"; } /** * Additional options for Apigee#organizationsDeploymentsList. */ export interface OrganizationsDeploymentsListOptions { /** * Optional. Flag that specifies whether to return shared flow or API proxy * deployments. Set to `true` to return shared flow deployments; set to * `false` to return API proxy deployments. Defaults to `false`. */ sharedFlows?: boolean; } /** * Additional options for * Apigee#organizationsDevelopersAppsGenerateKeyPairOrUpdateDeveloperAppStatus. */ export interface OrganizationsDevelopersAppsGenerateKeyPairOrUpdateDeveloperAppStatusOptions { /** * Action. Valid values are `approve` or `revoke`. */ action?: string; } /** * Additional options for Apigee#organizationsDevelopersAppsGet. */ export interface OrganizationsDevelopersAppsGetOptions { /** * **Note**: Must be used in conjunction with the `query` parameter. Set to * `apiresources` to return the number of API resources that have been * approved for access by a developer app in the specified Apigee * organization. */ entity?: string; /** * **Note**: Must be used in conjunction with the `entity` parameter. Set to * `count` to return the number of API resources that have been approved for * access by a developer app in the specified Apigee organization. */ query?: string; } /** * Additional options for * Apigee#organizationsDevelopersAppsKeysApiproductsUpdateDeveloperAppKeyApiProduct. */ export interface OrganizationsDevelopersAppsKeysApiproductsUpdateDeveloperAppKeyApiProductOptions { /** * Approve or revoke the consumer key by setting this value to `approve` or * `revoke`, respectively. */ action?: string; } /** * Additional options for * Apigee#organizationsDevelopersAppsKeysUpdateDeveloperAppKey. */ export interface OrganizationsDevelopersAppsKeysUpdateDeveloperAppKeyOptions { /** * Approve or revoke the consumer key by setting this value to `approve` or * `revoke`, respectively. The `Content-Type` header must be set to * `application/octet-stream`. */ action?: string; } /** * Additional options for Apigee#organizationsDevelopersAppsList. */ export interface OrganizationsDevelopersAppsListOptions { /** * Number of developer apps to return in the API call. Use with the * `startKey` parameter to provide more targeted filtering. The limit is 1000. */ count?: bigint; /** * Optional. Specifies whether to expand the results. Set to `true` to expand * the results. This query parameter is not valid if you use the `count` or * `startKey` query parameters. */ expand?: boolean; /** * Optional. Specifies whether to expand the results in shallow mode. Set to * `true` to expand the results in shallow mode. */ shallowExpand?: boolean; /** * **Note**: Must be used in conjunction with the `count` parameter. Name of * the developer app from which to start displaying the list of developer * apps. For example, if you're returning 50 developer apps at a time (using * the `count` query parameter), you can view developer apps 50-99 by entering * the name of the 50th developer app. The developer app name is case * sensitive. */ startKey?: string; } function serializeOrganizationsDevelopersAppsListOptions(data: any): OrganizationsDevelopersAppsListOptions { return { ...data, count: data["count"] !== undefined ? String(data["count"]) : undefined, }; } function deserializeOrganizationsDevelopersAppsListOptions(data: any): OrganizationsDevelopersAppsListOptions { return { ...data, count: data["count"] !== undefined ? BigInt(data["count"]) : undefined, }; } /** * Additional options for Apigee#organizationsDevelopersGet. */ export interface OrganizationsDevelopersGetOptions { /** * Status of the developer. Valid values are `active` or `inactive`. */ action?: string; } /** * Additional options for Apigee#organizationsDevelopersList. */ export interface OrganizationsDevelopersListOptions { /** * Optional. List only Developers that are associated with the app. Note that * start_key, count are not applicable for this filter criteria. */ app?: string; /** * Optional. Number of developers to return in the API call. Use with the * `startKey` parameter to provide more targeted filtering. The limit is 1000. */ count?: bigint; /** * Specifies whether to expand the results. Set to `true` to expand the * results. This query parameter is not valid if you use the `count` or * `startKey` query parameters. */ expand?: boolean; /** * Optional. List of IDs to include, separated by commas. */ ids?: string; /** * Flag that specifies whether to include company details in the response. */ includeCompany?: boolean; /** * **Note**: Must be used in conjunction with the `count` parameter. Email * address of the developer from which to start displaying the list of * developers. For example, if the an unfiltered list returns: ``` * westley@example.com fezzik@example.com buttercup@example.com ``` and your * `startKey` is `fezzik@example.com`, the list returned will be ``` * fezzik@example.com buttercup@example.com ``` */ startKey?: string; } function serializeOrganizationsDevelopersListOptions(data: any): OrganizationsDevelopersListOptions { return { ...data, count: data["count"] !== undefined ? String(data["count"]) : undefined, }; } function deserializeOrganizationsDevelopersListOptions(data: any): OrganizationsDevelopersListOptions { return { ...data, count: data["count"] !== undefined ? BigInt(data["count"]) : undefined, }; } /** * Additional options for Apigee#organizationsDevelopersSetDeveloperStatus. */ export interface OrganizationsDevelopersSetDeveloperStatusOptions { /** * Status of the developer. Valid values are `active` and `inactive`. */ action?: string; } /** * Additional options for Apigee#organizationsDevelopersSubscriptionsList. */ export interface OrganizationsDevelopersSubscriptionsListOptions { /** * Number of API product subscriptions to return in the API call. Use with * `startKey` to provide more targeted filtering. Defaults to 100. The maximum * limit is 1000. */ count?: number; /** * Name of the API product subscription from which to start displaying the * list of subscriptions. If omitted, the list starts from the first item. For * example, to view the API product subscriptions from 51-150, set the value * of `startKey` to the name of the 51st subscription and set the value of * `count` to 100. */ startKey?: string; } /** * Additional options for Apigee#organizationsEndpointAttachmentsCreate. */ export interface OrganizationsEndpointAttachmentsCreateOptions { /** * ID to use for the endpoint attachment. ID must start with a lowercase * letter followed by up to 31 lowercase letters, numbers, or hyphens, and * cannot end with a hyphen. The minimum length is 2. */ endpointAttachmentId?: string; } /** * Additional options for Apigee#organizationsEndpointAttachmentsList. */ export interface OrganizationsEndpointAttachmentsListOptions { /** * Optional. Maximum number of endpoint attachments to return. If * unspecified, at most 25 attachments will be returned. */ pageSize?: number; /** * Optional. Page token, returned from a previous `ListEndpointAttachments` * call, that you can use to retrieve the next page. */ pageToken?: string; } /** * Additional options for Apigee#organizationsEnvgroupsAttachmentsList. */ export interface OrganizationsEnvgroupsAttachmentsListOptions { /** * Maximum number of environment group attachments to return. The page size * defaults to 25. */ pageSize?: number; /** * Page token, returned by a previous ListEnvironmentGroupAttachments call, * that you can use to retrieve the next page. */ pageToken?: string; } /** * Additional options for Apigee#organizationsEnvgroupsCreate. */ export interface OrganizationsEnvgroupsCreateOptions { /** * Optional. ID of the environment group. Overrides any ID in the * environment_group resource. */ name?: string; } /** * Additional options for * Apigee#organizationsEnvgroupsGetDeployedIngressConfig. */ export interface OrganizationsEnvgroupsGetDeployedIngressConfigOptions { /** * When set to FULL, additional details about the specific deployments * receiving traffic will be included in the IngressConfig response's * RoutingRules. */ view?: | "INGRESS_CONFIG_VIEW_UNSPECIFIED" | "BASIC" | "FULL"; } /** * Additional options for Apigee#organizationsEnvgroupsList. */ export interface OrganizationsEnvgroupsListOptions { /** * Maximum number of environment groups to return. The page size defaults to * 25. */ pageSize?: number; /** * Page token, returned from a previous ListEnvironmentGroups call, that you * can use to retrieve the next page. */ pageToken?: string; } /** * Additional options for Apigee#organizationsEnvgroupsPatch. */ export interface OrganizationsEnvgroupsPatchOptions { /** * Optional. List of fields to be updated. */ updateMask?: string /* FieldMask */; } function serializeOrganizationsEnvgroupsPatchOptions(data: any): OrganizationsEnvgroupsPatchOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } function deserializeOrganizationsEnvgroupsPatchOptions(data: any): OrganizationsEnvgroupsPatchOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } /** * Additional options for * Apigee#organizationsEnvironmentsAnalyticsAdminGetSchemav2. */ export interface OrganizationsEnvironmentsAnalyticsAdminGetSchemav2Options { /** * Flag that specifies whether the schema is be read from the database or * cache. Set to `true` to read the schema from the database. Defaults to * cache. */ disableCache?: boolean; /** * Required. Name of the dataset for which you want to retrieve the schema. * For example: `fact` or `agg_cus1` */ type?: string; } /** * Additional options for * Apigee#organizationsEnvironmentsApisRevisionsDebugsessionsCreate. */ export interface OrganizationsEnvironmentsApisRevisionsDebugsessionsCreateOptions { /** * Optional. The time in seconds after which this DebugSession should end. A * timeout specified in DebugSession will overwrite this value. */ timeout?: bigint; } function serializeOrganizationsEnvironmentsApisRevisionsDebugsessionsCreateOptions(data: any): OrganizationsEnvironmentsApisRevisionsDebugsessionsCreateOptions { return { ...data, timeout: data["timeout"] !== undefined ? String(data["timeout"]) : undefined, }; } function deserializeOrganizationsEnvironmentsApisRevisionsDebugsessionsCreateOptions(data: any): OrganizationsEnvironmentsApisRevisionsDebugsessionsCreateOptions { return { ...data, timeout: data["timeout"] !== undefined ? BigInt(data["timeout"]) : undefined, }; } /** * Additional options for * Apigee#organizationsEnvironmentsApisRevisionsDebugsessionsList. */ export interface OrganizationsEnvironmentsApisRevisionsDebugsessionsListOptions { /** * Maximum number of debug sessions to return. The page size defaults to 25. */ pageSize?: number; /** * Page token, returned from a previous ListDebugSessions call, that you can * use to retrieve the next page. */ pageToken?: string; } /** * Additional options for * Apigee#organizationsEnvironmentsApisRevisionsDeploymentsGenerateDeployChangeReport. */ export interface OrganizationsEnvironmentsApisRevisionsDeploymentsGenerateDeployChangeReportOptions { /** * Flag that specifies whether to force the deployment of the new revision * over the currently deployed revision by overriding conflict checks. */ override?: boolean; } /** * Additional options for Apigee#organizationsEnvironmentsApisRevisionsDeploy. */ export interface OrganizationsEnvironmentsApisRevisionsDeployOptions { /** * Flag that specifies whether the new deployment replaces other deployed * revisions of the API proxy in the environment. Set `override` to `true` to * replace other deployed revisions. By default, `override` is `false` and the * deployment is rejected if other revisions of the API proxy are deployed in * the environment. */ override?: boolean; /** * Flag that specifies whether to enable sequenced rollout. If set to `true`, * the routing rules for this deployment and the environment changes to add * the deployment will be rolled out in a safe order. This reduces the risk of * downtime that could be caused by changing the environment group's routing * before the new destination for the affected traffic is ready to receive it. * This should only be necessary if the new deployment will be capturing * traffic from another environment under a shared environment group or if * traffic will be rerouted to a different environment due to a base path * removal. The generateDeployChangeReport API may be used to examine routing * changes before issuing the deployment request, and its response will * indicate if a sequenced rollout is recommended for the deployment. */ sequencedRollout?: boolean; /** * Google Cloud IAM service account. The service account represents the * identity of the deployed proxy, and determines what permissions it has. The * format must be `{ACCOUNT_ID}@{PROJECT}.iam.gserviceaccount.com`. */ serviceAccount?: string; } /** * Additional options for * Apigee#organizationsEnvironmentsApisRevisionsUndeploy. */ export interface OrganizationsEnvironmentsApisRevisionsUndeployOptions { /** * Flag that specifies whether to enable sequenced rollout. If set to `true`, * the environment group routing rules corresponding to this deployment will * be removed before removing the deployment from the runtime. This is likely * to be a rare use case; it is only needed when the intended effect of * undeploying this proxy is to cause the traffic it currently handles to be * rerouted to some other existing proxy in the environment group. The * GenerateUndeployChangeReport API may be used to examine routing changes * before issuing the undeployment request, and its response will indicate if * a sequenced rollout is recommended for the undeployment. */ sequencedRollout?: boolean; } /** * Additional options for * Apigee#organizationsEnvironmentsArchiveDeploymentsList. */ export interface OrganizationsEnvironmentsArchiveDeploymentsListOptions { /** * Optional. An optional query used to return a subset of Archive Deployments * using the semantics defined in https://google.aip.dev/160. */ filter?: string; /** * Optional. Maximum number of Archive Deployments to return. If unspecified, * at most 25 deployments will be returned. */ pageSize?: number; /** * Optional. Page token, returned from a previous ListArchiveDeployments * call, that you can use to retrieve the next page. */ pageToken?: string; } /** * Additional options for * Apigee#organizationsEnvironmentsArchiveDeploymentsPatch. */ export interface OrganizationsEnvironmentsArchiveDeploymentsPatchOptions { /** * Required. The list of fields to be updated. */ updateMask?: string /* FieldMask */; } function serializeOrganizationsEnvironmentsArchiveDeploymentsPatchOptions(data: any): OrganizationsEnvironmentsArchiveDeploymentsPatchOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } function deserializeOrganizationsEnvironmentsArchiveDeploymentsPatchOptions(data: any): OrganizationsEnvironmentsArchiveDeploymentsPatchOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } /** * Additional options for Apigee#organizationsEnvironmentsCreate. */ export interface OrganizationsEnvironmentsCreateOptions { /** * Optional. Name of the environment. */ name?: string; } /** * Additional options for * Apigee#organizationsEnvironmentsDeploymentsGetIamPolicy. */ export interface OrganizationsEnvironmentsDeploymentsGetIamPolicyOptions { /** * Optional. The maximum policy version that will be used to format the * policy. Valid values are 0, 1, and 3. Requests specifying an invalid value * will be rejected. Requests for policies with any conditional role bindings * must specify version 3. Policies with no conditional role bindings may * specify any valid value or leave the field unset. The policy in the * response might use the policy version that you specified, or it might use a * lower policy version. For example, if you specify version 3, but the policy * has no conditional role bindings, the response uses version 1. To learn * which resources support conditions in their IAM policies, see the [IAM * documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ ["options.requestedPolicyVersion"]?: number; } /** * Additional options for Apigee#organizationsEnvironmentsDeploymentsList. */ export interface OrganizationsEnvironmentsDeploymentsListOptions { /** * Optional. Flag that specifies whether to return shared flow or API proxy * deployments. Set to `true` to return shared flow deployments; set to * `false` to return API proxy deployments. Defaults to `false`. */ sharedFlows?: boolean; } /** * Additional options for Apigee#organizationsEnvironmentsGetIamPolicy. */ export interface OrganizationsEnvironmentsGetIamPolicyOptions { /** * Optional. The maximum policy version that will be used to format the * policy. Valid values are 0, 1, and 3. Requests specifying an invalid value * will be rejected. Requests for policies with any conditional role bindings * must specify version 3. Policies with no conditional role bindings may * specify any valid value or leave the field unset. The policy in the * response might use the policy version that you specified, or it might use a * lower policy version. For example, if you specify version 3, but the policy * has no conditional role bindings, the response uses version 1. To learn * which resources support conditions in their IAM policies, see the [IAM * documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ ["options.requestedPolicyVersion"]?: number; } /** * Additional options for * Apigee#organizationsEnvironmentsKeystoresAliasesCreate. */ export interface OrganizationsEnvironmentsKeystoresAliasesCreateOptions { /** * DEPRECATED: For improved security, specify the password in the request * body instead of using the query parameter. To specify the password in the * request body, set `Content-type: multipart/form-data` part with name * `password`. Password for the private key file, if required. */ _password?: string; /** * Alias for the key/certificate pair. Values must match the regular * expression `[\w\s-.]{1,255}`. This must be provided for all formats except * `selfsignedcert`; self-signed certs may specify the alias in either this * parameter or the JSON body. */ alias?: string; /** * Required. Format of the data. Valid values include: `selfsignedcert`, * `keycertfile`, or `pkcs12` */ format?: string; /** * Flag that specifies whether to ignore expiry validation. If set to `true`, * no expiry validation will be performed. */ ignoreExpiryValidation?: boolean; /** * Flag that specifies whether to ignore newline validation. If set to * `true`, no error is thrown when the file contains a certificate chain with * no newline between each certificate. Defaults to `false`. */ ignoreNewlineValidation?: boolean; } /** * Additional options for * Apigee#organizationsEnvironmentsKeystoresAliasesUpdate. */ export interface OrganizationsEnvironmentsKeystoresAliasesUpdateOptions { /** * Required. Flag that specifies whether to ignore expiry validation. If set * to `true`, no expiry validation will be performed. */ ignoreExpiryValidation?: boolean; /** * Flag that specifies whether to ignore newline validation. If set to * `true`, no error is thrown when the file contains a certificate chain with * no newline between each certificate. Defaults to `false`. */ ignoreNewlineValidation?: boolean; } /** * Additional options for Apigee#organizationsEnvironmentsKeystoresCreate. */ export interface OrganizationsEnvironmentsKeystoresCreateOptions { /** * Optional. Name of the keystore. Overrides the value in Keystore. */ name?: string; } /** * Additional options for * Apigee#organizationsEnvironmentsKeyvaluemapsEntriesList. */ export interface OrganizationsEnvironmentsKeyvaluemapsEntriesListOptions { /** * Optional. Maximum number of key value entries to return. If unspecified, * at most 100 entries will be returned. */ pageSize?: number; /** * Optional. Page token. If provides, must be a valid key value entry * returned from a previous call that can be used to retrieve the next page. */ pageToken?: string; } /** * Additional options for Apigee#organizationsEnvironmentsModifyEnvironment. */ export interface OrganizationsEnvironmentsModifyEnvironmentOptions { /** * List of fields to be updated. Fields that can be updated: node_config. */ updateMask?: string /* FieldMask */; } function serializeOrganizationsEnvironmentsModifyEnvironmentOptions(data: any): OrganizationsEnvironmentsModifyEnvironmentOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } function deserializeOrganizationsEnvironmentsModifyEnvironmentOptions(data: any): OrganizationsEnvironmentsModifyEnvironmentOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } /** * Additional options for Apigee#organizationsEnvironmentsOptimizedStatsGet. */ export interface OrganizationsEnvironmentsOptimizedStatsGetOptions { /** * No longer used by Apigee. Supported for backwards compatibility. */ accuracy?: string; /** * Table name used to query custom aggregate tables. If this parameter is * skipped, then Apigee will try to retrieve the data from fact tables which * will be expensive. */ aggTable?: string; /** * Filter that enables you to drill-down on specific dimension values. */ filter?: string; /** * Maximum number of result items to return. The default and maximum value * that can be returned is 14400. */ limit?: string; /** * Offset value. Use `offset` with `limit` to enable pagination of results. * For example, to display results 11-20, set limit to `10` and offset to * `10`. */ offset?: string; /** * No longer used by Apigee. Supported for backwards compatibility. */ realtime?: boolean; /** * Required. Comma-separated list of metrics. For example: * `sum(message_count),sum(error_count)` */ select?: string; /** * Routes the query to API Monitoring for the last hour. */ sonar?: boolean; /** * Flag that specifies whether the sort order should be ascending or * descending. Valid values include `DESC` and `ASC`. */ sort?: string; /** * Comma-separated list of columns to sort the final result. */ sortby?: string; /** * Required. Time interval for the interactive query. Time range is specified * in GMT as `start~end`. For example: `04/15/2017 00:00~05/15/2017 23:59` */ timeRange?: string; /** * Granularity of metrics returned. Valid values include: `second`, `minute`, * `hour`, `day`, `week`, or `month`. */ timeUnit?: string; /** * Top number of results to return. For example, to return the top 5 results, * set `topk=5`. */ topk?: string; /** * Flag that specifies whether to list timestamps in ascending (`true`) or * descending (`false`) order. Apigee recommends setting this value to `true` * if you are using `sortby` with `sort=DESC`. */ tsAscending?: boolean; /** * Timezone offset value. */ tzo?: string; } /** * Additional options for Apigee#organizationsEnvironmentsQueriesList. */ export interface OrganizationsEnvironmentsQueriesListOptions { /** * Filter response list by dataset. Example: `api`, `mint` */ dataset?: string; /** * Filter response list by returning asynchronous queries that created after * this date time. Time must be in ISO date-time format like * '2011-12-03T10:15:30Z'. */ from?: string; /** * Flag to include asynchronous queries that don't have a report denifition. */ inclQueriesWithoutReport?: string; /** * Filter response list by asynchronous query status. */ status?: string; /** * Filter response list by user who submitted queries. */ submittedBy?: string; /** * Filter response list by returning asynchronous queries that created before * this date time. Time must be in ISO date-time format like * '2011-12-03T10:16:30Z'. */ to?: string; } /** * Additional options for Apigee#organizationsEnvironmentsResourcefilesCreate. */ export interface OrganizationsEnvironmentsResourcefilesCreateOptions { /** * Required. Name of the resource file. Must match the regular expression: * [a-zA-Z0-9:/\\!@#$%^&{}\[\]()+\-=,.~'` ]{1,255} */ name?: string; /** * Required. Resource file type. {{ resource_file_type }} */ type?: string; } /** * Additional options for Apigee#organizationsEnvironmentsResourcefilesList. */ export interface OrganizationsEnvironmentsResourcefilesListOptions { /** * Optional. Type of resource files to list. {{ resource_file_type }} */ type?: string; } /** * Additional options for * Apigee#organizationsEnvironmentsSecurityActionsCreate. */ export interface OrganizationsEnvironmentsSecurityActionsCreateOptions { /** * Required. The ID to use for the SecurityAction, which will become the * final component of the action's resource name. This value should be 0-61 * characters, and valid format is (^[a-z]([a-z0-9-]{​0,61}[a-z0-9])?$). */ securityActionId?: string; } /** * Additional options for Apigee#organizationsEnvironmentsSecurityActionsList. */ export interface OrganizationsEnvironmentsSecurityActionsListOptions { /** * The filter expression to filter List results. https://google.aip.dev/160. * Allows for filtering over: state and api_proxies. E.g.: state = ACTIVE AND * apiProxies:foo. Filtering by action is not supported * https://github.com/aip-dev/google.aip.dev/issues/624 */ filter?: string; /** * The maximum number of SecurityActions to return. If unspecified, at most * 50 SecurityActions will be returned. The maximum value is 1000; values * above 1000 will be coerced to 1000. */ pageSize?: number; /** * A page token, received from a previous `ListSecurityActions` call. Provide * this to retrieve the subsequent page. When paginating, all other parameters * provided to `ListSecurityActions` must match the call that provided the * page token. */ pageToken?: string; } /** * Additional options for * Apigee#organizationsEnvironmentsSecurityIncidentsList. */ export interface OrganizationsEnvironmentsSecurityIncidentsListOptions { /** * The filter expression to be used to get the list of security incidents, * where filtering can be done on API Proxies. Example: filter = "api_proxy = * /", "first_detected_time >", "last_detected_time <" */ filter?: string; /** * Optional. The maximum number of incidents to return. The service may * return fewer than this value. If unspecified, at most 50 incidents will be * returned. */ pageSize?: number; /** * Optional. A page token, received from a previous `ListSecurityIncident` * call. Provide this to retrieve the subsequent page. */ pageToken?: string; } /** * Additional options for * Apigee#organizationsEnvironmentsSecurityIncidentsPatch. */ export interface OrganizationsEnvironmentsSecurityIncidentsPatchOptions { /** * Required. The list of fields to update. Allowed fields are: * LINT.IfChange(allowed_update_fields_comment) - observability * LINT.ThenChange() */ updateMask?: string /* FieldMask */; } function serializeOrganizationsEnvironmentsSecurityIncidentsPatchOptions(data: any): OrganizationsEnvironmentsSecurityIncidentsPatchOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } function deserializeOrganizationsEnvironmentsSecurityIncidentsPatchOptions(data: any): OrganizationsEnvironmentsSecurityIncidentsPatchOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } /** * Additional options for Apigee#organizationsEnvironmentsSecurityReportsList. */ export interface OrganizationsEnvironmentsSecurityReportsListOptions { /** * Filter response list by dataset. Example: `api`, `mint` */ dataset?: string; /** * Filter response list by returning security reports that created after this * date time. Time must be in ISO date-time format like * '2011-12-03T10:15:30Z'. */ from?: string; /** * The maximum number of security report to return in the list response. */ pageSize?: number; /** * Token returned from the previous list response to fetch the next page. */ pageToken?: string; /** * Filter response list by security reports status. */ status?: string; /** * Filter response list by user who submitted queries. */ submittedBy?: string; /** * Filter response list by returning security reports that created before * this date time. Time must be in ISO date-time format like * '2011-12-03T10:16:30Z'. */ to?: string; } /** * Additional options for * Apigee#organizationsEnvironmentsSharedflowsRevisionsDeploy. */ export interface OrganizationsEnvironmentsSharedflowsRevisionsDeployOptions { /** * Flag that specifies whether the new deployment replaces other deployed * revisions of the shared flow in the environment. Set `override` to `true` * to replace other deployed revisions. By default, `override` is `false` and * the deployment is rejected if other revisions of the shared flow are * deployed in the environment. */ override?: boolean; /** * Google Cloud IAM service account. The service account represents the * identity of the deployed proxy, and determines what permissions it has. The * format must be `{ACCOUNT_ID}@{PROJECT}.iam.gserviceaccount.com`. */ serviceAccount?: string; } /** * Additional options for Apigee#organizationsEnvironmentsStatsGet. */ export interface OrganizationsEnvironmentsStatsGetOptions { /** * No longer used by Apigee. Supported for backwards compatibility. */ accuracy?: string; /** * Table name used to query custom aggregate tables. If this parameter is * skipped, then Apigee will try to retrieve the data from fact tables which * will be expensive. */ aggTable?: string; /** * Filter that enables you to drill down on specific dimension values. */ filter?: string; /** * Maximum number of result items to return. The default and maximum value * that can be returned is 14400. */ limit?: string; /** * Offset value. Use `offset` with `limit` to enable pagination of results. * For example, to display results 11-20, set limit to `10` and offset to * `10`. */ offset?: string; /** * No longer used by Apigee. Supported for backwards compatibility. */ realtime?: boolean; /** * Comma-separated list of metrics. For example: * `sum(message_count),sum(error_count)` */ select?: string; /** * Routes the query to API Monitoring for the last hour. */ sonar?: boolean; /** * Flag that specifies whether the sort order should be ascending or * descending. Valid values include: `DESC` and `ASC`. */ sort?: string; /** * Comma-separated list of columns to sort the final result. */ sortby?: string; /** * Time interval for the interactive query. Time range is specified in GMT as * `start~end`. For example: `04/15/2017 00:00~05/15/2017 23:59` */ timeRange?: string; /** * Granularity of metrics returned. Valid values include: `second`, `minute`, * `hour`, `day`, `week`, or` month`. */ timeUnit?: string; /** * Top number of results to return. For example, to return the top 5 results, * set `topk=5`. */ topk?: string; /** * Flag that specifies whether to list timestamps in ascending (`true`) or * descending (`false`) order. Apigee recommends that you set this value to * `true` if you are using `sortby` with `sort=DESC`. */ tsAscending?: boolean; /** * Timezone offset value. */ tzo?: string; } /** * Additional options for Apigee#organizationsEnvironmentsTargetserversCreate. */ export interface OrganizationsEnvironmentsTargetserversCreateOptions { /** * Optional. The ID to give the TargetServer. This will overwrite the value * in TargetServer. */ name?: string; } /** * Additional options for * Apigee#organizationsEnvironmentsTraceConfigOverridesList. */ export interface OrganizationsEnvironmentsTraceConfigOverridesListOptions { /** * Maximum number of trace configuration overrides to return. If not * specified, the maximum number returned is 25. The maximum number cannot * exceed 100. */ pageSize?: number; /** * A page token, returned from a previous `ListTraceConfigOverrides` call. * Token value that can be used to retrieve the subsequent page. When * paginating, all other parameters provided to `ListTraceConfigOverrides` * must match those specified in the call to obtain the page token. */ pageToken?: string; } /** * Additional options for * Apigee#organizationsEnvironmentsTraceConfigOverridesPatch. */ export interface OrganizationsEnvironmentsTraceConfigOverridesPatchOptions { /** * List of fields to be updated. */ updateMask?: string /* FieldMask */; } function serializeOrganizationsEnvironmentsTraceConfigOverridesPatchOptions(data: any): OrganizationsEnvironmentsTraceConfigOverridesPatchOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } function deserializeOrganizationsEnvironmentsTraceConfigOverridesPatchOptions(data: any): OrganizationsEnvironmentsTraceConfigOverridesPatchOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } /** * Additional options for Apigee#organizationsEnvironmentsUpdateDebugmask. */ export interface OrganizationsEnvironmentsUpdateDebugmaskOptions { /** * Boolean flag that specifies whether to replace existing values in the * debug mask when doing an update. Set to true to replace existing values. * The default behavior is to append the values (false). */ replaceRepeatedFields?: boolean; /** * Field debug mask to support partial updates. */ updateMask?: string /* FieldMask */; } function serializeOrganizationsEnvironmentsUpdateDebugmaskOptions(data: any): OrganizationsEnvironmentsUpdateDebugmaskOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } function deserializeOrganizationsEnvironmentsUpdateDebugmaskOptions(data: any): OrganizationsEnvironmentsUpdateDebugmaskOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } /** * Additional options for * Apigee#organizationsEnvironmentsUpdateSecurityActionsConfig. */ export interface OrganizationsEnvironmentsUpdateSecurityActionsConfigOptions { /** * The list of fields to update. */ updateMask?: string /* FieldMask */; } function serializeOrganizationsEnvironmentsUpdateSecurityActionsConfigOptions(data: any): OrganizationsEnvironmentsUpdateSecurityActionsConfigOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } function deserializeOrganizationsEnvironmentsUpdateSecurityActionsConfigOptions(data: any): OrganizationsEnvironmentsUpdateSecurityActionsConfigOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } /** * Additional options for Apigee#organizationsEnvironmentsUpdateTraceConfig. */ export interface OrganizationsEnvironmentsUpdateTraceConfigOptions { /** * List of fields to be updated. */ updateMask?: string /* FieldMask */; } function serializeOrganizationsEnvironmentsUpdateTraceConfigOptions(data: any): OrganizationsEnvironmentsUpdateTraceConfigOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } function deserializeOrganizationsEnvironmentsUpdateTraceConfigOptions(data: any): OrganizationsEnvironmentsUpdateTraceConfigOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } /** * Additional options for Apigee#organizationsGetDeployedIngressConfig. */ export interface OrganizationsGetDeployedIngressConfigOptions { /** * When set to FULL, additional details about the specific deployments * receiving traffic will be included in the IngressConfig response's * RoutingRules. */ view?: | "INGRESS_CONFIG_VIEW_UNSPECIFIED" | "BASIC" | "FULL"; } /** * Additional options for Apigee#organizationsHostQueriesList. */ export interface OrganizationsHostQueriesListOptions { /** * Filter response list by dataset. Example: `api`, `mint` */ dataset?: string; /** * Required. Filter response list by hostname. */ envgroupHostname?: string; /** * Filter response list by returning asynchronous queries that created after * this date time. Time must be in ISO date-time format like * '2011-12-03T10:15:30Z'. */ from?: string; /** * Flag to include asynchronous queries that don't have a report denifition. */ inclQueriesWithoutReport?: string; /** * Filter response list by asynchronous query status. */ status?: string; /** * Filter response list by user who submitted queries. */ submittedBy?: string; /** * Filter response list by returning asynchronous queries that created before * this date time. Time must be in ISO date-time format like * '2011-12-03T10:16:30Z'. */ to?: string; } /** * Additional options for Apigee#organizationsHostSecurityReportsList. */ export interface OrganizationsHostSecurityReportsListOptions { /** * Filter response list by dataset. Example: `api`, `mint` */ dataset?: string; /** * Required. Filter response list by hostname. */ envgroupHostname?: string; /** * Filter response list by returning security reports that created after this * date time. Time must be in ISO date-time format like * '2011-12-03T10:15:30Z'. */ from?: string; /** * The maximum number of security report to return in the list response. */ pageSize?: number; /** * Token returned from the previous list response to fetch the next page. */ pageToken?: string; /** * Filter response list by security report status. */ status?: string; /** * Filter response list by user who submitted queries. */ submittedBy?: string; /** * Filter response list by returning security reports that created before * this date time. Time must be in ISO date-time format like * '2011-12-03T10:16:30Z'. */ to?: string; } /** * Additional options for Apigee#organizationsHostStatsGet. */ export interface OrganizationsHostStatsGetOptions { /** * No longer used by Apigee. Supported for backwards compatibility. */ accuracy?: string; /** * Required. Hostname for which the interactive query will be executed. */ envgroupHostname?: string; /** * Flag that enables drill-down on specific dimension values. */ filter?: string; /** * Maximum number of result items to return. The default and maximum value * that can be returned is 14400. */ limit?: string; /** * Offset value. Use `offset` with `limit` to enable pagination of results. * For example, to display results 11-20, set limit to `10` and offset to * `10`. */ offset?: string; /** * No longer used by Apigee. Supported for backwards compatibility. */ realtime?: boolean; /** * Comma-separated list of metrics. For example: * `sum(message_count),sum(error_count)` */ select?: string; /** * Flag that specifies if the sort order should be ascending or descending. * Valid values are `DESC` and `ASC`. */ sort?: string; /** * Comma-separated list of columns to sort the final result. */ sortby?: string; /** * Time interval for the interactive query. Time range is specified in GMT as * `start~end`. For example: `04/15/2017 00:00~05/15/2017 23:59` */ timeRange?: string; /** * Granularity of metrics returned. Valid values include: `second`, `minute`, * `hour`, `day`, `week`, or `month`. */ timeUnit?: string; /** * Top number of results to return. For example, to return the top 5 results, * set `topk=5`. */ topk?: string; /** * Flag that specifies whether to list timestamps in ascending (`true`) or * descending (`false`) order. Apigee recommends that you set this value to * `true` if you are using `sortby` with `sort=DESC`. */ tsAscending?: boolean; /** * Timezone offset value. */ tzo?: string; } /** * Additional options for Apigee#organizationsInstancesAttachmentsList. */ export interface OrganizationsInstancesAttachmentsListOptions { /** * Maximum number of instance attachments to return. Defaults to 25. */ pageSize?: number; /** * Page token, returned by a previous ListInstanceAttachments call, that you * can use to retrieve the next page of content. */ pageToken?: string; } /** * Additional options for Apigee#organizationsInstancesList. */ export interface OrganizationsInstancesListOptions { /** * Maximum number of instances to return. Defaults to 25. */ pageSize?: number; /** * Page token, returned from a previous ListInstances call, that you can use * to retrieve the next page of content. */ pageToken?: string; } /** * Additional options for Apigee#organizationsInstancesNatAddressesList. */ export interface OrganizationsInstancesNatAddressesListOptions { /** * Maximum number of natAddresses to return. Defaults to 25. */ pageSize?: number; /** * Page token, returned from a previous ListNatAddresses call, that you can * use to retrieve the next page of content. */ pageToken?: string; } /** * Additional options for Apigee#organizationsInstancesPatch. */ export interface OrganizationsInstancesPatchOptions { /** * List of fields to be updated. */ updateMask?: string /* FieldMask */; } function serializeOrganizationsInstancesPatchOptions(data: any): OrganizationsInstancesPatchOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } function deserializeOrganizationsInstancesPatchOptions(data: any): OrganizationsInstancesPatchOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } /** * Additional options for Apigee#organizationsKeyvaluemapsEntriesList. */ export interface OrganizationsKeyvaluemapsEntriesListOptions { /** * Optional. Maximum number of key value entries to return. If unspecified, * at most 100 entries will be returned. */ pageSize?: number; /** * Optional. Page token. If provides, must be a valid key value entry * returned from a previous call that can be used to retrieve the next page. */ pageToken?: string; } /** * Additional options for Apigee#organizationsOperationsList. */ export interface OrganizationsOperationsListOptions { /** * The standard list filter. */ filter?: string; /** * The standard list page size. */ pageSize?: number; /** * The standard list page token. */ pageToken?: string; } /** * Additional options for Apigee#organizationsOptimizedHostStatsGet. */ export interface OrganizationsOptimizedHostStatsGetOptions { /** * No longer used by Apigee. Supported for backwards compatibility. */ accuracy?: string; /** * Required. Hostname for which the interactive query will be executed. */ envgroupHostname?: string; /** * Filter that enables you to drill-down on specific dimension values. */ filter?: string; /** * Maximum number of result items to return. The default and maximum value * that can be returned is 14400. */ limit?: string; /** * Offset value. Use `offset` with `limit` to enable pagination of results. * For example, to display results 11-20, set limit to `10` and offset to * `10`. */ offset?: string; /** * No longer used by Apigee. Supported for backwards compatibility. */ realtime?: boolean; /** * Required. Comma-separated list of metrics. For example: * `sum(message_count),sum(error_count)` */ select?: string; /** * Flag that specifies whether the sort order should be ascending or * descending. Valid values include `DESC` and `ASC`. */ sort?: string; /** * Comma-separated list of columns used to sort the final result. */ sortby?: string; /** * Required. Time interval for the interactive query. Time range is specified * in GMT as `start~end`. For example: `04/15/2017 00:00~05/15/2017 23:59`. */ timeRange?: string; /** * Granularity of metrics returned. Valid values include: `second`, `minute`, * `hour`, `day`, `week`, or `month`. */ timeUnit?: string; /** * Top number of results to return. For example, to return the top 5 results, * set `topk=5`. */ topk?: string; /** * Flag that specifies whether to list timestamps in ascending (`true`) or * descending (`false`) order. Apigee recommends that you set this value to * `true` if you are using `sortby` with `sort=DESC`. */ tsAscending?: boolean; /** * Timezone offset value. */ tzo?: string; } /** * Additional options for Apigee#organizationsReportsList. */ export interface OrganizationsReportsListOptions { /** * Set to 'true' to get expanded details about each custom report. */ expand?: boolean; } /** * Additional options for Apigee#organizationsSecurityProfilesCreate. */ export interface OrganizationsSecurityProfilesCreateOptions { /** * Required. The ID to use for the SecurityProfile, which will become the * final component of the action's resource name. This value should be 1-63 * characters and validated by "(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$)". */ securityProfileId?: string; } /** * Additional options for Apigee#organizationsSecurityProfilesList. */ export interface OrganizationsSecurityProfilesListOptions { /** * The maximum number of profiles to return. The service may return fewer * than this value. If unspecified, at most 50 profiles will be returned. */ pageSize?: number; /** * A page token, received from a previous `ListSecurityProfiles` call. * Provide this to retrieve the subsequent page. */ pageToken?: string; } /** * Additional options for Apigee#organizationsSecurityProfilesListRevisions. */ export interface OrganizationsSecurityProfilesListRevisionsOptions { /** * The maximum number of profile revisions to return. The service may return * fewer than this value. If unspecified, at most 50 revisions will be * returned. */ pageSize?: number; /** * A page token, received from a previous `ListSecurityProfileRevisions` * call. Provide this to retrieve the subsequent page. */ pageToken?: string; } /** * Additional options for Apigee#organizationsSecurityProfilesPatch. */ export interface OrganizationsSecurityProfilesPatchOptions { /** * Required. The list of fields to update. */ updateMask?: string /* FieldMask */; } function serializeOrganizationsSecurityProfilesPatchOptions(data: any): OrganizationsSecurityProfilesPatchOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } function deserializeOrganizationsSecurityProfilesPatchOptions(data: any): OrganizationsSecurityProfilesPatchOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } /** * Additional options for Apigee#organizationsSecurityProfilesV2Create. */ export interface OrganizationsSecurityProfilesV2CreateOptions { /** * Required. The security profile id. */ securityProfileV2Id?: string; } /** * Additional options for Apigee#organizationsSecurityProfilesV2List. */ export interface OrganizationsSecurityProfilesV2ListOptions { /** * Optional. The maximum number of profiles to return */ pageSize?: number; /** * Optional. A page token, received from a previous `ListSecurityProfilesV2` * call. Provide this to retrieve the subsequent page. */ pageToken?: string; } /** * Additional options for Apigee#organizationsSecurityProfilesV2Patch. */ export interface OrganizationsSecurityProfilesV2PatchOptions { /** * Optional. The list of fields to update. Valid fields to update are * `description` and `profileAssessmentConfigs`. */ updateMask?: string /* FieldMask */; } function serializeOrganizationsSecurityProfilesV2PatchOptions(data: any): OrganizationsSecurityProfilesV2PatchOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } function deserializeOrganizationsSecurityProfilesV2PatchOptions(data: any): OrganizationsSecurityProfilesV2PatchOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } /** * Additional options for Apigee#organizationsSharedflowsCreate. */ export interface OrganizationsSharedflowsCreateOptions { /** * Required. Must be set to either `import` or `validate`. */ action?: string; /** * Required. The name to give the shared flow */ name?: string; } /** * Additional options for Apigee#organizationsSharedflowsList. */ export interface OrganizationsSharedflowsListOptions { /** * Indicates whether to include shared flow metadata in the response. */ includeMetaData?: boolean; /** * Indicates whether to include a list of revisions in the response. */ includeRevisions?: boolean; } /** * Additional options for Apigee#organizationsSharedflowsRevisionsGet. */ export interface OrganizationsSharedflowsRevisionsGetOptions { /** * Specify `bundle` to export the contents of the shared flow bundle. * Otherwise, the bundle metadata is returned. */ format?: string; } /** * Additional options for * Apigee#organizationsSharedflowsRevisionsUpdateSharedFlowRevision. */ export interface OrganizationsSharedflowsRevisionsUpdateSharedFlowRevisionOptions { /** * Ignored. All uploads are validated regardless of the value of this field. * It is kept for compatibility with existing APIs. Must be `true` or `false` * if provided. */ validate?: boolean; } /** * Additional options for Apigee#organizationsSitesApidocsList. */ export interface OrganizationsSitesApidocsListOptions { /** * Optional. The maximum number of items to return. The service may return * fewer than this value. If unspecified, at most 25 books will be returned. * The maximum value is 100; values above 100 will be coerced to 100. */ pageSize?: number; /** * Optional. A page token, received from a previous `ListApiDocs` call. * Provide this to retrieve the subsequent page. */ pageToken?: string; } /** * Additional options for Apigee#organizationsUpdateControlPlaneAccess. */ export interface OrganizationsUpdateControlPlaneAccessOptions { /** * List of fields to be updated. Fields that can be updated: * synchronizer_identities, publisher_identities. */ updateMask?: string /* FieldMask */; } function serializeOrganizationsUpdateControlPlaneAccessOptions(data: any): OrganizationsUpdateControlPlaneAccessOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } function deserializeOrganizationsUpdateControlPlaneAccessOptions(data: any): OrganizationsUpdateControlPlaneAccessOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } /** * Additional options for Apigee#organizationsUpdateSecuritySettings. */ export interface OrganizationsUpdateSecuritySettingsOptions { /** * Optional. The list of fields to update. Allowed fields are: - * ml_retraining_feedback_enabled */ updateMask?: string /* FieldMask */; } function serializeOrganizationsUpdateSecuritySettingsOptions(data: any): OrganizationsUpdateSecuritySettingsOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } function deserializeOrganizationsUpdateSecuritySettingsOptions(data: any): OrganizationsUpdateSecuritySettingsOptions { return { ...data, updateMask: data["updateMask"] !== undefined ? data["updateMask"] : undefined, }; } function decodeBase64(b64: string): Uint8Array { const binString = atob(b64); const size = binString.length; const bytes = new Uint8Array(size); for (let i = 0; i < size; i++) { bytes[i] = binString.charCodeAt(i); } return bytes; } const base64abc = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/"]; /** * CREDIT: https://gist.github.com/enepomnyaschih/72c423f727d395eeaa09697058238727 * Encodes a given Uint8Array, ArrayBuffer or string into RFC4648 base64 representation * @param data */ function encodeBase64(uint8: Uint8Array): string { let result = "", i; const l = uint8.length; for (i = 2; i < l; i += 3) { result += base64abc[uint8[i - 2] >> 2]; result += base64abc[((uint8[i - 2] & 0x03) << 4) | (uint8[i - 1] >> 4)]; result += base64abc[((uint8[i - 1] & 0x0f) << 2) | (uint8[i] >> 6)]; result += base64abc[uint8[i] & 0x3f]; } if (i === l + 1) { // 1 octet yet to write result += base64abc[uint8[i - 2] >> 2]; result += base64abc[(uint8[i - 2] & 0x03) << 4]; result += "=="; } if (i === l) { // 2 octets yet to write result += base64abc[uint8[i - 2] >> 2]; result += base64abc[((uint8[i - 2] & 0x03) << 4) | (uint8[i - 1] >> 4)]; result += base64abc[(uint8[i - 1] & 0x0f) << 2]; result += "="; } return result; }