---
title: "POST /v1alpha1/projects/{projectsId}/locations/{locationsId}/contactCenters"
method: POST
path: "/v1alpha1/projects/{projectsId}/locations/{locationsId}/contactCenters"
tags: ["projects"]
---

# POST /v1alpha1/projects/{projectsId}/locations/{locationsId}/contactCenters

`POST /v1alpha1/projects/{projectsId}/locations/{locationsId}/contactCenters`

## Request

- Base URL: `https://contactcenteraiplatform.googleapis.com`
- URL: `https://contactcenteraiplatform.googleapis.com/v1alpha1/projects/{projectsId}/locations/{locationsId}/contactCenters`
- Auth: OAuth 2 and OAuth 2
  - Implicit: `https://accounts.google.com/o/oauth2/auth`
  - Scopes: `https://www.googleapis.com/auth/cloud-platform`
  - Authorization code: `https://accounts.google.com/o/oauth2/auth`
  - Token URL: `https://accounts.google.com/o/oauth2/token` scopes: `https://www.googleapis.com/auth/cloud-platform`
- TypeScript: <https://skmtc.dev/google/apis/contactcenteraiplatform/docs/v1alpha1/projects/:projectsId/locations/:locationsId/contactCenters/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a new ContactCenter in a given project and location.

## Path parameters

- `projectsId` string, required
- `locationsId` string, required

## Query parameters

- `contactCenterId` string
- `requestId` string

## Request body

- ContactCenter: Message describing ContactCenter object
  - `adminUser` AdminUser: Message storing info about the first admin user. Next ID: 3
    - `familyName` string: Optional. Last/family name of the first admin user.
    - `givenName` string: Optional. First/given name of the first admin user.
  - `advancedReportingEnabled` boolean: Optional. Whether the advanced reporting feature is enabled.
  - `ccaipManagedUsers` boolean: Optional. Whether to enable users to be created in the CCAIP-instance concurrently to having users in Cloud identity
  - `createTime` string, google-datetime: Output only. [Output only] Create time stamp
  - `critical` Critical: Instances in this Channel will receive updates after all instances in `Normal` were updated. They also will only be updated outside of their peak hours.
    - `peakHours` WeeklySchedule[]: Required. Hours during which the instance should not be updated.
      - `days` string[]: Required. Days of the week this schedule applies to.
      - `duration` string, google-duration: Optional. Duration of the schedule.
      - `endTime` TimeOfDay: Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
        - `hours` integer: Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
        - `minutes` integer: Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
        - `nanos` integer: Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
        - `seconds` integer: Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
      - `startTime` TimeOfDay: Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
        - `hours` integer: Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
        - `minutes` integer: Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
        - `nanos` integer: Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
        - `seconds` integer: Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
  - `customerDomainPrefix` string: Required. Immutable. At least 2 and max 16 char long, must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt).
  - `deleteTime` string, google-datetime: Output only. Timestamp in UTC of when this resource was soft-deleted.
  - `displayName` string: Required. A user friendly name for the ContactCenter.
  - `early` Early: LINT.IfChange First Channel to receive the updates. Meant to dev/test instances
  - `expireTime` string, google-datetime: Output only. Timestamp in UTC of when this resource is considered expired.
  - `featureConfig` FeatureConfig
    - `agentDesktopEnabled` boolean: Optional. If true - enables the agent desktop feature. Default is false.
  - `instanceConfig` InstanceConfig: Message storing the instance configuration.
    - `instanceSize` 'INSTANCE_SIZE_UNSPECIFIED' | 'STANDARD_SMALL' | 'STANDARD_MEDIUM' | 'STANDARD_LARGE' | 'STANDARD_XLARGE' | 'STANDARD_2XLARGE' | 'STANDARD_3XLARGE' | 'MULTIREGION_SMALL' | 'MULTIREGION_MEDIUM' | 'MULTIREGION_LARGE' | 'MULTIREGION_XLARGE' | 'MULTIREGION_2XLARGE' | 'MULTIREGION_3XLARGE' | 'DEV_SMALL' | 'SANDBOX_SMALL' | 'TRIAL_SMALL' | 'TIME_LIMITED_TRIAL_SMALL': The instance size of this the instance configuration.
  - `kmsKey` string: Immutable. The KMS key name to encrypt the user input (`ContactCenter`).
  - `labels` object: Labels as key value pairs
  - `name` string: name of resource
  - `normal` Normal: Instances in this Channel will receive updates after all instances in `Early` were updated + 2 days.
  - `privateAccess` PrivateAccess: Defines ingress and egress private traffic settings for CCAIP instances.
    - `egressSettings` Component[]: List of egress components that should not be accessed via the Internet. For more information see go/ccaip-private-path-v2.
      - `name` string: Name of the component.
      - `serviceAttachmentNames` string[]: Associated service attachments. The service attachment names that will be used for sending private traffic to the CCAIP tenant project. Example service attachment name: "projects/${TENANT_PROJECT_ID}/regions/${REGION}/serviceAttachments/ingress-default".
    - `ingressSettings` Component[]: List of ingress components that should not be accessed via the Internet. For more information see go/ccaip-private-path-v2.
      - `name` string: Name of the component.
      - `serviceAttachmentNames` string[]: Associated service attachments. The service attachment names that will be used for sending private traffic to the CCAIP tenant project. Example service attachment name: "projects/${TENANT_PROJECT_ID}/regions/${REGION}/serviceAttachments/ingress-default".
    - `pscSetting` PscSetting: Private service connect settings.
      - `allowedConsumerProjectIds` string[]: The list of project ids that are allowed to send traffic to the service attachment. This field should be filled only for the ingress components.
      - `producerProjectIds` string[]: Output only. The CCAIP tenant project ids.
  - `privateComponents` string[]: Output only. TODO(b/283407860) Deprecate this field.
  - `purgeTime` string, google-datetime: Output only. Timestamp in UTC of when this resource is going to be hard-deleted.
  - `releaseVersion` string: Output only. UJET release version, unique for each new release.
  - `samlParams` SAMLParams: Message storing SAML params to enable Google as IDP.
    - `authenticationContexts` string[]: Additional contexts used for authentication.
    - `certificate` string: SAML certificate
    - `emailMapping` string: IdP field that maps to the user’s email address
    - `entityId` string: Entity id URL
    - `ssoUri` string: Single sign-on URL
    - `userEmail` string: Email address of the first admin users.
  - `state` 'STATE_UNSPECIFIED' | 'STATE_DEPLOYING' | 'STATE_DEPLOYED' | 'STATE_TERMINATING' | 'STATE_FAILED' | 'STATE_TERMINATING_FAILED' | 'STATE_TERMINATED' | 'STATE_IN_GRACE_PERIOD' | 'STATE_FAILING_OVER' | 'STATE_DEGRADED' | 'STATE_REPAIRING' | 'STATE_EXPIRING': Output only. The state of this contact center.
  - `updateTime` string, google-datetime: Output only. [Output only] Update time stamp
  - `uris` URIs: Message storing the URIs of the ContactCenter.
    - `chatBotUri` string: Chat Bot Uri of the ContactCenter
    - `mediaUri` string: Media Uri of the ContactCenter.
    - `rootUri` string: Root Uri of the ContactCenter.
    - `virtualAgentStreamingServiceUri` string: Virtual Agent Streaming Service Uri of the ContactCenter.
  - `userEmail` string: Optional. Email address of the first admin user.

## Response `200`

Successful response

- Operation: This resource represents a long-running operation that is the result of a network API call.
  - `done` boolean: 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.
  - `error` Status: 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).
    - `code` integer: The status code, which should be an enum value of google.rpc.Code.
    - `details` object[]: A list of messages that carry the error details. There is a common set of message types for APIs to use.
    - `message` string: 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.
  - `metadata` object: 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.
  - `name` string: 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}`.
  - `response` object: 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`.

---

[API](https://skmtc.dev/google/apis/contactcenteraiplatform.md) - [All operations](https://skmtc.dev/google/apis/contactcenteraiplatform/llms.txt) - [OpenAPI document](https://skmtc.dev/google/apis/contactcenteraiplatform/revisions/181f1ee6bcdb?raw)
