@sisyphus.js/google
Version:
Precompiled google common protos by sisyphus protobuf compiler
298 lines • 12.4 kB
TypeScript
import { long } from '@sisyphus.js/runtime';
import { Any } from '@sisyphus.js/runtime/lib/google/protobuf/any';
import { Struct } from '@sisyphus.js/runtime/lib/google/protobuf/struct';
import { AttributeContext } from '../../rpc/context/attribute_context';
import { Status } from '../../rpc/status';
/** Common audit log format for Google Cloud Platform API operations. */
export interface AuditLog {
/**
* The name of the API service performing the operation. For example,
* `"compute.googleapis.com"`.
*/
serviceName?: string;
/**
* The name of the service method or operation.
* For API calls, this should be the name of the API method.
* For example,
*
* "google.cloud.bigquery.v2.TableService.InsertTable"
* "google.logging.v2.ConfigServiceV2.CreateSink"
*/
methodName?: string;
/**
* The resource or collection that is the target of the operation.
* The name is a scheme-less URI, not including the API service name.
* For example:
*
* "projects/PROJECT_ID/zones/us-central1-a/instances"
* "projects/PROJECT_ID/datasets/DATASET_ID"
*/
resourceName?: string;
/** The resource location information. */
resourceLocation?: ResourceLocation;
/**
* The resource's original state before mutation. Present only for
* operations which have successfully modified the targeted resource(s).
* In general, this field should contain all changed fields, except those
* that are already been included in `request`, `response`, `metadata` or
* `service_data` fields.
* When the JSON object represented here has a proto equivalent,
* the proto name will be indicated in the `@type` property.
*/
resourceOriginalState?: Struct;
/**
* The number of items returned from a List or Query API method,
* if applicable.
*/
numResponseItems?: long;
/** The status of the overall operation. */
status?: Status;
/** Authentication information. */
authenticationInfo?: AuthenticationInfo;
/**
* Authorization information. If there are multiple
* resources or permissions involved, then there is
* one AuthorizationInfo element for each {resource, permission} tuple.
*/
authorizationInfo?: AuthorizationInfo[];
/** Metadata about the operation. */
requestMetadata?: RequestMetadata;
/**
* The operation request. This may not include all request parameters,
* such as those that are too large, privacy-sensitive, or duplicated
* elsewhere in the log record.
* It should never include user-generated data, such as file contents.
* When the JSON object represented here has a proto equivalent, the proto
* name will be indicated in the `@type` property.
*/
request?: Struct;
/**
* The operation response. This may not include all response elements,
* such as those that are too large, privacy-sensitive, or duplicated
* elsewhere in the log record.
* It should never include user-generated data, such as file contents.
* When the JSON object represented here has a proto equivalent, the proto
* name will be indicated in the `@type` property.
*/
response?: Struct;
/**
* Other service-specific data about the request, response, and other
* information associated with the current audited event.
*/
metadata?: Struct;
/**
* Deprecated. Use the `metadata` field instead.
* Other service-specific data about the request, response, and other
* activities.
*/
serviceData?: Any;
}
export declare namespace AuditLog {
const name = "google.cloud.audit.AuditLog";
}
/** Authentication information for the operation. */
export interface AuthenticationInfo {
/**
* The email address of the authenticated user (or service account on behalf
* of third party principal) making the request. For third party identity
* callers, the `principal_subject` field is populated instead of this field.
* For privacy reasons, the principal email address is sometimes redacted.
* For more information, see
* https://cloud.google.com/logging/docs/audit#user-id.
*/
principalEmail?: string;
/**
* The authority selector specified by the requestor, if any.
* It is not guaranteed that the principal was allowed to use this authority.
*/
authoritySelector?: string;
/**
* The third party identification (if any) of the authenticated user making
* the request.
* When the JSON object represented here has a proto equivalent, the proto
* name will be indicated in the `@type` property.
*/
thirdPartyPrincipal?: Struct;
/**
* The name of the service account key used to create or exchange
* credentials for authenticating the service account making the request.
* This is a scheme-less URI full resource name. For example:
*
* "//iam.googleapis.com/projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}"
*/
serviceAccountKeyName?: string;
/**
* Identity delegation history of an authenticated service account that makes
* the request. It contains information on the real authorities that try to
* access GCP resources by delegating on a service account. When multiple
* authorities present, they are guaranteed to be sorted based on the original
* ordering of the identity delegation events.
*/
serviceAccountDelegationInfo?: ServiceAccountDelegationInfo[];
/**
* String representation of identity of requesting party.
* Populated for both first and third party identities.
*/
principalSubject?: string;
}
export declare namespace AuthenticationInfo {
const name = "google.cloud.audit.AuthenticationInfo";
}
/** Authorization information for the operation. */
export interface AuthorizationInfo {
/**
* The resource being accessed, as a REST-style or cloud resource string.
* For example:
*
* bigquery.googleapis.com/projects/PROJECTID/datasets/DATASETID
* or
* projects/PROJECTID/datasets/DATASETID
*/
resource?: string;
/** The required IAM permission. */
permission?: string;
/**
* Whether or not authorization for `resource` and `permission`
* was granted.
*/
granted?: boolean;
/**
* Resource attributes used in IAM condition evaluation. This field contains
* resource attributes like resource type and resource name.
*
* To get the whole view of the attributes used in IAM
* condition evaluation, the user must also look into
* `AuditLog.request_metadata.request_attributes`.
*/
resourceAttributes?: AttributeContext.Resource;
}
export declare namespace AuthorizationInfo {
const name = "google.cloud.audit.AuthorizationInfo";
}
/** Metadata about the request. */
export interface RequestMetadata {
/**
* The IP address of the caller.
* For caller from internet, this will be public IPv4 or IPv6 address.
* For caller from a Compute Engine VM with external IP address, this
* will be the VM's external IP address. For caller from a Compute
* Engine VM without external IP address, if the VM is in the same
* organization (or project) as the accessed resource, `caller_ip` will
* be the VM's internal IPv4 address, otherwise the `caller_ip` will be
* redacted to "gce-internal-ip".
* See https://cloud.google.com/compute/docs/vpc/ for more information.
*/
callerIp?: string;
/**
* The user agent of the caller.
* This information is not authenticated and should be treated accordingly.
* For example:
*
* + `google-api-python-client/1.4.0`:
* The request was made by the Google API client for Python.
* + `Cloud SDK Command Line Tool apitools-client/1.0 gcloud/0.9.62`:
* The request was made by the Google Cloud SDK CLI (gcloud).
* + `AppEngine-Google; (+http://code.google.com/appengine; appid:
* s~my-project`:
* The request was made from the `my-project` App Engine app.
*/
callerSuppliedUserAgent?: string;
/**
* The network of the caller.
* Set only if the network host project is part of the same GCP organization
* (or project) as the accessed resource.
* See https://cloud.google.com/compute/docs/vpc/ for more information.
* This is a scheme-less URI full resource name. For example:
*
* "//compute.googleapis.com/projects/PROJECT_ID/global/networks/NETWORK_ID"
*/
callerNetwork?: string;
/**
* Request attributes used in IAM condition evaluation. This field contains
* request attributes like request time and access levels associated with
* the request.
*
*
* To get the whole view of the attributes used in IAM
* condition evaluation, the user must also look into
* `AuditLog.authentication_info.resource_attributes`.
*/
requestAttributes?: AttributeContext.Request;
/**
* The destination of a network activity, such as accepting a TCP connection.
* In a multi hop network activity, the destination represents the receiver of
* the last hop. Only two fields are used in this message, Peer.port and
* Peer.ip. These fields are optionally populated by those services utilizing
* the IAM condition feature.
*/
destinationAttributes?: AttributeContext.Peer;
}
export declare namespace RequestMetadata {
const name = "google.cloud.audit.RequestMetadata";
}
/** Location information about a resource. */
export interface ResourceLocation {
/**
* The locations of a resource after the execution of the operation.
* Requests to create or delete a location based resource must populate
* the 'current_locations' field and not the 'original_locations' field.
* For example:
*
* "europe-west1-a"
* "us-east1"
* "nam3"
*/
currentLocations?: string[];
/**
* The locations of a resource prior to the execution of the operation.
* Requests that mutate the resource's location must populate both the
* 'original_locations' as well as the 'current_locations' fields.
* For example:
*
* "europe-west1-a"
* "us-east1"
* "nam3"
*/
originalLocations?: string[];
}
export declare namespace ResourceLocation {
const name = "google.cloud.audit.ResourceLocation";
}
/** Identity delegation history of an authenticated service account. */
export interface ServiceAccountDelegationInfo {
/**
* A string representing the principal_subject associated with the identity.
* For most identities, the format will be
* `principal://iam.googleapis.com/{identity pool name}/subject/{subject)`
* except for some GKE identities (GKE_WORKLOAD, FREEFORM, GKE_HUB_WORKLOAD)
* that are still in the legacy format `serviceAccount:{identity pool
* name}[{subject}]`
*/
principalSubject?: string;
/** First party (Google) identity as the real authority. */
firstPartyPrincipal?: ServiceAccountDelegationInfo.FirstPartyPrincipal;
/** Third party identity as the real authority. */
thirdPartyPrincipal?: ServiceAccountDelegationInfo.ThirdPartyPrincipal;
}
export declare namespace ServiceAccountDelegationInfo {
const name = "google.cloud.audit.ServiceAccountDelegationInfo";
/** First party identity principal. */
interface FirstPartyPrincipal {
/** The email address of a Google account. */
principalEmail?: string;
/** Metadata about the service that uses the service account. */
serviceMetadata?: Struct;
}
namespace FirstPartyPrincipal {
const name = "google.cloud.audit.ServiceAccountDelegationInfo.FirstPartyPrincipal";
}
/** Third party identity principal. */
interface ThirdPartyPrincipal {
/** Metadata about third party identity. */
thirdPartyClaims?: Struct;
}
namespace ThirdPartyPrincipal {
const name = "google.cloud.audit.ServiceAccountDelegationInfo.ThirdPartyPrincipal";
}
}
//# sourceMappingURL=audit_log.d.ts.map