# Admin Directory API . schemas

## Instance Methods

Delete schema

Retrieve schema

Create schema.

Retrieve all schemas for a customer

Update schema. This method supports patch semantics.

Update schema

### Method Details

`delete(customerId, schemaKey)`

    Delete schema

    Args:
      customerId: string, Immutable ID of the G Suite account (required)
      schemaKey: string, Name or immutable Id of the schema (required)

`get(customerId, schemaKey)`

    Retrieve schema

    Args:
      customerId: string, Immutable ID of the G Suite account (required)
      schemaKey: string, Name or immutable Id of the schema (required)

    Returns:
      An object of the form:

        { # JSON template for Schema resource in Directory API.
          "fields": [ # Fields of Schema
            { # JSON template for FieldSpec resource for Schemas in Directory API.
              "kind": "admin#directory#schema#fieldspec", # Kind of resource this is.
              "etag": "A String", # ETag of the resource.
              "fieldName": "A String", # Name of the field.
              "fieldType": "A String", # Type of the field.
              "indexed": true, # Boolean specifying whether the field is indexed or not.
              "readAccessType": "ALL_DOMAIN_USERS", # Read ACLs on the field specifying who can view values of this field. Valid values are "ALL_DOMAIN_USERS" and "ADMINS_AND_SELF".
              "numericIndexingSpec": { # Indexing spec for a numeric field. By default, only exact match queries will be supported for numeric fields. Setting the numericIndexingSpec allows range queries to be supported.
                "maxValue": 3.14, # Maximum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.
                "minValue": 3.14, # Minimum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.
              },
              "fieldId": "A String", # Unique identifier of Field (Read-only)
              "multiValued": True or False, # Boolean specifying whether this is a multi-valued field or not.
            },
          ],
          "kind": "admin#directory#schema", # Kind of resource this is.
          "etag": "A String", # ETag of the resource.
          "schemaId": "A String", # Unique identifier of Schema (Read-only)
          "schemaName": "A String", # Schema name
        }

`insert(customerId, body)`

    Create schema.

    Args:
      customerId: string, Immutable ID of the G Suite account (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # JSON template for Schema resource in Directory API.
        "fields": [ # Fields of Schema
          { # JSON template for FieldSpec resource for Schemas in Directory API.
            "kind": "admin#directory#schema#fieldspec", # Kind of resource this is.
            "etag": "A String", # ETag of the resource.
            "fieldName": "A String", # Name of the field.
            "fieldType": "A String", # Type of the field.
            "indexed": true, # Boolean specifying whether the field is indexed or not.
            "readAccessType": "ALL_DOMAIN_USERS", # Read ACLs on the field specifying who can view values of this field. Valid values are "ALL_DOMAIN_USERS" and "ADMINS_AND_SELF".
            "numericIndexingSpec": { # Indexing spec for a numeric field. By default, only exact match queries will be supported for numeric fields. Setting the numericIndexingSpec allows range queries to be supported.
              "maxValue": 3.14, # Maximum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.
              "minValue": 3.14, # Minimum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.
            },
            "fieldId": "A String", # Unique identifier of Field (Read-only)
            "multiValued": True or False, # Boolean specifying whether this is a multi-valued field or not.
          },
        ],
        "kind": "admin#directory#schema", # Kind of resource this is.
        "etag": "A String", # ETag of the resource.
        "schemaId": "A String", # Unique identifier of Schema (Read-only)
        "schemaName": "A String", # Schema name
      }

    Returns:
      An object of the form:

        { # JSON template for Schema resource in Directory API.
          "fields": [ # Fields of Schema
            { # JSON template for FieldSpec resource for Schemas in Directory API.
              "kind": "admin#directory#schema#fieldspec", # Kind of resource this is.
              "etag": "A String", # ETag of the resource.
              "fieldName": "A String", # Name of the field.
              "fieldType": "A String", # Type of the field.
              "indexed": true, # Boolean specifying whether the field is indexed or not.
              "readAccessType": "ALL_DOMAIN_USERS", # Read ACLs on the field specifying who can view values of this field. Valid values are "ALL_DOMAIN_USERS" and "ADMINS_AND_SELF".
              "numericIndexingSpec": { # Indexing spec for a numeric field. By default, only exact match queries will be supported for numeric fields. Setting the numericIndexingSpec allows range queries to be supported.
                "maxValue": 3.14, # Maximum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.
                "minValue": 3.14, # Minimum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.
              },
              "fieldId": "A String", # Unique identifier of Field (Read-only)
              "multiValued": True or False, # Boolean specifying whether this is a multi-valued field or not.
            },
          ],
          "kind": "admin#directory#schema", # Kind of resource this is.
          "etag": "A String", # ETag of the resource.
          "schemaId": "A String", # Unique identifier of Schema (Read-only)
          "schemaName": "A String", # Schema name
        }

`list(customerId)`

    Retrieve all schemas for a customer

    Args:
      customerId: string, Immutable ID of the G Suite account (required)

    Returns:
      An object of the form:

        { # JSON response template for List Schema operation in Directory API.
        "kind": "admin#directory#schemas", # Kind of resource this is.
        "etag": "A String", # ETag of the resource.
        "schemas": [ # List of UserSchema objects.
          { # JSON template for Schema resource in Directory API.
              "fields": [ # Fields of Schema
                { # JSON template for FieldSpec resource for Schemas in Directory API.
                  "kind": "admin#directory#schema#fieldspec", # Kind of resource this is.
                  "etag": "A String", # ETag of the resource.
                  "fieldName": "A String", # Name of the field.
                  "fieldType": "A String", # Type of the field.
                  "indexed": true, # Boolean specifying whether the field is indexed or not.
                  "readAccessType": "ALL_DOMAIN_USERS", # Read ACLs on the field specifying who can view values of this field. Valid values are "ALL_DOMAIN_USERS" and "ADMINS_AND_SELF".
                  "numericIndexingSpec": { # Indexing spec for a numeric field. By default, only exact match queries will be supported for numeric fields. Setting the numericIndexingSpec allows range queries to be supported.
                    "maxValue": 3.14, # Maximum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.
                    "minValue": 3.14, # Minimum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.
                  },
                  "fieldId": "A String", # Unique identifier of Field (Read-only)
                  "multiValued": True or False, # Boolean specifying whether this is a multi-valued field or not.
                },
              ],
              "kind": "admin#directory#schema", # Kind of resource this is.
              "etag": "A String", # ETag of the resource.
              "schemaId": "A String", # Unique identifier of Schema (Read-only)
              "schemaName": "A String", # Schema name
            },
        ],
      }

`patch(customerId, schemaKey, body)`

    Update schema. This method supports patch semantics.

    Args:
      customerId: string, Immutable ID of the G Suite account (required)
      schemaKey: string, Name or immutable Id of the schema. (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # JSON template for Schema resource in Directory API.
        "fields": [ # Fields of Schema
          { # JSON template for FieldSpec resource for Schemas in Directory API.
            "kind": "admin#directory#schema#fieldspec", # Kind of resource this is.
            "etag": "A String", # ETag of the resource.
            "fieldName": "A String", # Name of the field.
            "fieldType": "A String", # Type of the field.
            "indexed": true, # Boolean specifying whether the field is indexed or not.
            "readAccessType": "ALL_DOMAIN_USERS", # Read ACLs on the field specifying who can view values of this field. Valid values are "ALL_DOMAIN_USERS" and "ADMINS_AND_SELF".
            "numericIndexingSpec": { # Indexing spec for a numeric field. By default, only exact match queries will be supported for numeric fields. Setting the numericIndexingSpec allows range queries to be supported.
              "maxValue": 3.14, # Maximum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.
              "minValue": 3.14, # Minimum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.
            },
            "fieldId": "A String", # Unique identifier of Field (Read-only)
            "multiValued": True or False, # Boolean specifying whether this is a multi-valued field or not.
          },
        ],
        "kind": "admin#directory#schema", # Kind of resource this is.
        "etag": "A String", # ETag of the resource.
        "schemaId": "A String", # Unique identifier of Schema (Read-only)
        "schemaName": "A String", # Schema name
      }

    Returns:
      An object of the form:

        { # JSON template for Schema resource in Directory API.
          "fields": [ # Fields of Schema
            { # JSON template for FieldSpec resource for Schemas in Directory API.
              "kind": "admin#directory#schema#fieldspec", # Kind of resource this is.
              "etag": "A String", # ETag of the resource.
              "fieldName": "A String", # Name of the field.
              "fieldType": "A String", # Type of the field.
              "indexed": true, # Boolean specifying whether the field is indexed or not.
              "readAccessType": "ALL_DOMAIN_USERS", # Read ACLs on the field specifying who can view values of this field. Valid values are "ALL_DOMAIN_USERS" and "ADMINS_AND_SELF".
              "numericIndexingSpec": { # Indexing spec for a numeric field. By default, only exact match queries will be supported for numeric fields. Setting the numericIndexingSpec allows range queries to be supported.
                "maxValue": 3.14, # Maximum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.
                "minValue": 3.14, # Minimum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.
              },
              "fieldId": "A String", # Unique identifier of Field (Read-only)
              "multiValued": True or False, # Boolean specifying whether this is a multi-valued field or not.
            },
          ],
          "kind": "admin#directory#schema", # Kind of resource this is.
          "etag": "A String", # ETag of the resource.
          "schemaId": "A String", # Unique identifier of Schema (Read-only)
          "schemaName": "A String", # Schema name
        }

`update(customerId, schemaKey, body)`

    Update schema

    Args:
      customerId: string, Immutable ID of the G Suite account (required)
      schemaKey: string, Name or immutable Id of the schema. (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # JSON template for Schema resource in Directory API.
        "fields": [ # Fields of Schema
          { # JSON template for FieldSpec resource for Schemas in Directory API.
            "kind": "admin#directory#schema#fieldspec", # Kind of resource this is.
            "etag": "A String", # ETag of the resource.
            "fieldName": "A String", # Name of the field.
            "fieldType": "A String", # Type of the field.
            "indexed": true, # Boolean specifying whether the field is indexed or not.
            "readAccessType": "ALL_DOMAIN_USERS", # Read ACLs on the field specifying who can view values of this field. Valid values are "ALL_DOMAIN_USERS" and "ADMINS_AND_SELF".
            "numericIndexingSpec": { # Indexing spec for a numeric field. By default, only exact match queries will be supported for numeric fields. Setting the numericIndexingSpec allows range queries to be supported.
              "maxValue": 3.14, # Maximum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.
              "minValue": 3.14, # Minimum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.
            },
            "fieldId": "A String", # Unique identifier of Field (Read-only)
            "multiValued": True or False, # Boolean specifying whether this is a multi-valued field or not.
          },
        ],
        "kind": "admin#directory#schema", # Kind of resource this is.
        "etag": "A String", # ETag of the resource.
        "schemaId": "A String", # Unique identifier of Schema (Read-only)
        "schemaName": "A String", # Schema name
      }

    Returns:
      An object of the form:

        { # JSON template for Schema resource in Directory API.
          "fields": [ # Fields of Schema
            { # JSON template for FieldSpec resource for Schemas in Directory API.
              "kind": "admin#directory#schema#fieldspec", # Kind of resource this is.
              "etag": "A String", # ETag of the resource.
              "fieldName": "A String", # Name of the field.
              "fieldType": "A String", # Type of the field.
              "indexed": true, # Boolean specifying whether the field is indexed or not.
              "readAccessType": "ALL_DOMAIN_USERS", # Read ACLs on the field specifying who can view values of this field. Valid values are "ALL_DOMAIN_USERS" and "ADMINS_AND_SELF".
              "numericIndexingSpec": { # Indexing spec for a numeric field. By default, only exact match queries will be supported for numeric fields. Setting the numericIndexingSpec allows range queries to be supported.
                "maxValue": 3.14, # Maximum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.
                "minValue": 3.14, # Minimum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.
              },
              "fieldId": "A String", # Unique identifier of Field (Read-only)
              "multiValued": True or False, # Boolean specifying whether this is a multi-valued field or not.
            },
          ],
          "kind": "admin#directory#schema", # Kind of resource this is.
          "etag": "A String", # ETag of the resource.
          "schemaId": "A String", # Unique identifier of Schema (Read-only)
          "schemaName": "A String", # Schema name
        }