Tool: create_saas
Creates a Saas resource. Required parameters: 'parent' (e.g. projects/my-project/locations/us-central1), 'saas_id', 'saas'. Optional parameters: 'validate_only', 'request_id'.
The following sample demonstrate how to use curl
to invoke the create_saas
MCP tool.
| Curl Request |
|---|
curl --location 'https://saasservicemgmt.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "create_saas", "arguments": { // provide these details according to the tool' s MCP specification } } , "jsonrpc" : "2.0" , "id" : 1 } ' |
Input Schema
The request structure for the CreateSaas method.
CreateSaasRequest
| JSON representation |
|---|
{
"parent"
:
string
,
"saasId"
:
string
,
"saas"
:
{
object (
|
| Fields | |
|---|---|
parent
|
Required. The parent of the saas. |
saasId
|
Required. The ID value for the new saas. |
saas
|
Required. The desired state for the saas. |
validateOnly
|
If "validate_only" is set to true, the service will try to validate that this request would succeed, but will not actually make changes. |
requestId
|
An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000). |
Saas
| JSON representation |
|---|
{ "name" : string , "locations" : [ { object ( |
| Fields | |
|---|---|
name
|
Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/saas/{saas}" |
locations[]
|
Optional. List of locations that the service is available in. Rollout refers to the list to generate a rollout plan. |
applicationTemplate
|
Reference to composite ApplicationTemplate. When specified, the template components will be imported into their equivalent UnitKind, Release and Blueprint resources. Deleted references will not delete imported resources. Should only be specified on source regions, and be unspecified on replica regions. |
blueprintRepo
|
Output only. Name of repository in Artifact Registry for system-generated Blueprints, eg. Blueprints of imported ApplicationTemplates. |
state
|
Output only. State of the Saas. It is always in ACTIVE state if the application_template is empty. |
conditions[]
|
Output only. A set of conditions which indicate the various conditions this resource can have. |
error
|
Output only. If the state is FAILED, the corresponding error code and message. Defaults to code=OK for all other states. |
labels
|
Optional. The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels. An object containing a list of |
annotations
|
Optional. Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations An object containing a list of |
uid
|
Output only. The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4. |
etag
|
Output only. An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written. |
createTime
|
Output only. The timestamp when the resource was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime
|
Output only. The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
Location
| JSON representation |
|---|
{ "name" : string } |
| Fields | |
|---|---|
name
|
Optional. Name of location. |
CompositeRef
| JSON representation |
|---|
{ "applicationTemplate" : string , "revision" : string , "syncOperation" : string } |
| Fields | |
|---|---|
applicationTemplate
|
Required. Reference to the ApplicationTemplate resource. |
revision
|
Revision of the ApplicationTemplate to use. Changes to revision will trigger manual resynchronization. If empty, ApplicationTemplate will be ignored. |
syncOperation
|
Output only. Reference to on-going AppTemplate import and replication operation (i.e. the operation_id for the long-running operation). This field is opaque for external usage. |
SaasCondition
| JSON representation |
|---|
{ "status" : enum ( |
| Fields | |
|---|---|
status
|
Required. Status of the condition. |
type
|
Required. Type of the condition. |
lastTransitionTime
|
Required. Last time the condition transited from one status to another. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
message
|
Required. Human readable message indicating details about the last transition. |
reason
|
Required. Brief reason for the condition's last transition. |
Timestamp
| JSON representation |
|---|
{ "seconds" : string , "nanos" : integer } |
| Fields | |
|---|---|
seconds
|
Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z). |
nanos
|
Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive. |
Status
| JSON representation |
|---|
{ "code" : integer , "message" : string , "details" : [ { "@type" : string , field1 : ... , ... } ] } |
| Fields | |
|---|---|
code
|
The status code, which should be an enum value of |
message
|
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the |
details[]
|
A list of messages that carry the error details. There is a common set of message types for APIs to use. An object containing fields of an arbitrary type. An additional field |
Any
| JSON representation |
|---|
{ "typeUrl" : string , "value" : string } |
| Fields | |
|---|---|
typeUrl
|
Identifies the type of the serialized Protobuf message with a URI reference consisting of a prefix ending in a slash and the fully-qualified type name. Example: type.googleapis.com/google.protobuf.StringValue This string must contain at least one The prefix is arbitrary and Protobuf implementations are expected to simply strip off everything up to and including the last All type URL strings must be legal URI references with the additional restriction (for the text format) that the content of the reference must consist only of alphanumeric characters, percent-encoded escapes, and characters in the following set (not including the outer backticks): In the original design of |
value
|
Holds a Protobuf serialization of the type described by type_url. A base64-encoded string. |
LabelsEntry
| JSON representation |
|---|
{ "key" : string , "value" : string } |
| Fields | |
|---|---|
key
|
|
value
|
|
AnnotationsEntry
| JSON representation |
|---|
{ "key" : string , "value" : string } |
| Fields | |
|---|---|
key
|
|
value
|
|
Output Schema
Saas is a representation of a SaaS service managed by the Producer.
Saas
| JSON representation |
|---|
{ "name" : string , "locations" : [ { object ( |
| Fields | |
|---|---|
name
|
Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/saas/{saas}" |
locations[]
|
Optional. List of locations that the service is available in. Rollout refers to the list to generate a rollout plan. |
applicationTemplate
|
Reference to composite ApplicationTemplate. When specified, the template components will be imported into their equivalent UnitKind, Release and Blueprint resources. Deleted references will not delete imported resources. Should only be specified on source regions, and be unspecified on replica regions. |
blueprintRepo
|
Output only. Name of repository in Artifact Registry for system-generated Blueprints, eg. Blueprints of imported ApplicationTemplates. |
state
|
Output only. State of the Saas. It is always in ACTIVE state if the application_template is empty. |
conditions[]
|
Output only. A set of conditions which indicate the various conditions this resource can have. |
error
|
Output only. If the state is FAILED, the corresponding error code and message. Defaults to code=OK for all other states. |
labels
|
Optional. The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels. An object containing a list of |
annotations
|
Optional. Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations An object containing a list of |
uid
|
Output only. The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4. |
etag
|
Output only. An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written. |
createTime
|
Output only. The timestamp when the resource was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime
|
Output only. The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
Location
| JSON representation |
|---|
{ "name" : string } |
| Fields | |
|---|---|
name
|
Optional. Name of location. |
CompositeRef
| JSON representation |
|---|
{ "applicationTemplate" : string , "revision" : string , "syncOperation" : string } |
| Fields | |
|---|---|
applicationTemplate
|
Required. Reference to the ApplicationTemplate resource. |
revision
|
Revision of the ApplicationTemplate to use. Changes to revision will trigger manual resynchronization. If empty, ApplicationTemplate will be ignored. |
syncOperation
|
Output only. Reference to on-going AppTemplate import and replication operation (i.e. the operation_id for the long-running operation). This field is opaque for external usage. |
SaasCondition
| JSON representation |
|---|
{ "status" : enum ( |
| Fields | |
|---|---|
status
|
Required. Status of the condition. |
type
|
Required. Type of the condition. |
lastTransitionTime
|
Required. Last time the condition transited from one status to another. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
message
|
Required. Human readable message indicating details about the last transition. |
reason
|
Required. Brief reason for the condition's last transition. |
Timestamp
| JSON representation |
|---|
{ "seconds" : string , "nanos" : integer } |
| Fields | |
|---|---|
seconds
|
Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z). |
nanos
|
Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive. |
Status
| JSON representation |
|---|
{ "code" : integer , "message" : string , "details" : [ { "@type" : string , field1 : ... , ... } ] } |
| Fields | |
|---|---|
code
|
The status code, which should be an enum value of |
message
|
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the |
details[]
|
A list of messages that carry the error details. There is a common set of message types for APIs to use. An object containing fields of an arbitrary type. An additional field |
Any
| JSON representation |
|---|
{ "typeUrl" : string , "value" : string } |
| Fields | |
|---|---|
typeUrl
|
Identifies the type of the serialized Protobuf message with a URI reference consisting of a prefix ending in a slash and the fully-qualified type name. Example: type.googleapis.com/google.protobuf.StringValue This string must contain at least one The prefix is arbitrary and Protobuf implementations are expected to simply strip off everything up to and including the last All type URL strings must be legal URI references with the additional restriction (for the text format) that the content of the reference must consist only of alphanumeric characters, percent-encoded escapes, and characters in the following set (not including the outer backticks): In the original design of |
value
|
Holds a Protobuf serialization of the type described by type_url. A base64-encoded string. |
LabelsEntry
| JSON representation |
|---|
{ "key" : string , "value" : string } |
| Fields | |
|---|---|
key
|
|
value
|
|
AnnotationsEntry
| JSON representation |
|---|
{ "key" : string , "value" : string } |
| Fields | |
|---|---|
key
|
|
value
|
|
Tool Annotations
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ❌ | Open World Hint: ❌

