1. Packages
  2. Databricks Provider
  3. API Docs
  4. RegisteredModel
Databricks v1.78.0 published on Friday, Nov 7, 2025 by Pulumi
databricks logo
Databricks v1.78.0 published on Friday, Nov 7, 2025 by Pulumi

    This resource allows you to create Models in Unity Catalog in Databricks.

    This resource can only be used with a workspace-level provider!

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as databricks from "@pulumi/databricks";
    
    const _this = new databricks.RegisteredModel("this", {
        name: "my_model",
        catalogName: "main",
        schemaName: "default",
    });
    
    import pulumi
    import pulumi_databricks as databricks
    
    this = databricks.RegisteredModel("this",
        name="my_model",
        catalog_name="main",
        schema_name="default")
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-databricks/sdk/go/databricks"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := databricks.NewRegisteredModel(ctx, "this", &databricks.RegisteredModelArgs{
    			Name:        pulumi.String("my_model"),
    			CatalogName: pulumi.String("main"),
    			SchemaName:  pulumi.String("default"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Databricks = Pulumi.Databricks;
    
    return await Deployment.RunAsync(() => 
    {
        var @this = new Databricks.RegisteredModel("this", new()
        {
            Name = "my_model",
            CatalogName = "main",
            SchemaName = "default",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.databricks.RegisteredModel;
    import com.pulumi.databricks.RegisteredModelArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var this_ = new RegisteredModel("this", RegisteredModelArgs.builder()
                .name("my_model")
                .catalogName("main")
                .schemaName("default")
                .build());
    
        }
    }
    
    resources:
      this:
        type: databricks:RegisteredModel
        properties:
          name: my_model
          catalogName: main
          schemaName: default
    

    Access Control

    * databricks.Grants can be used to grant principals ALL_PRIVILEGES, APPLY_TAG, and EXECUTE privileges.

    The following resources are often used in the same context:

    * databricks.ModelServing to serve this model on a Databricks serving endpoint. * databricks.MlflowExperiment to manage MLflow experiments in Databricks. * databricks.Schema to manage schemas within Unity Catalog. * databricks.Catalog to manage catalogs within Unity Catalog.

    Create RegisteredModel Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new RegisteredModel(name: string, args?: RegisteredModelArgs, opts?: CustomResourceOptions);
    @overload
    def RegisteredModel(resource_name: str,
                        args: Optional[RegisteredModelArgs] = None,
                        opts: Optional[ResourceOptions] = None)
    
    @overload
    def RegisteredModel(resource_name: str,
                        opts: Optional[ResourceOptions] = None,
                        aliases: Optional[Sequence[RegisteredModelAliasArgs]] = None,
                        browse_only: Optional[bool] = None,
                        catalog_name: Optional[str] = None,
                        comment: Optional[str] = None,
                        created_at: Optional[int] = None,
                        created_by: Optional[str] = None,
                        full_name: Optional[str] = None,
                        metastore_id: Optional[str] = None,
                        name: Optional[str] = None,
                        owner: Optional[str] = None,
                        schema_name: Optional[str] = None,
                        storage_location: Optional[str] = None,
                        updated_at: Optional[int] = None,
                        updated_by: Optional[str] = None)
    func NewRegisteredModel(ctx *Context, name string, args *RegisteredModelArgs, opts ...ResourceOption) (*RegisteredModel, error)
    public RegisteredModel(string name, RegisteredModelArgs? args = null, CustomResourceOptions? opts = null)
    public RegisteredModel(String name, RegisteredModelArgs args)
    public RegisteredModel(String name, RegisteredModelArgs args, CustomResourceOptions options)
    
    type: databricks:RegisteredModel
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args RegisteredModelArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args RegisteredModelArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args RegisteredModelArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args RegisteredModelArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args RegisteredModelArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var registeredModelResource = new Databricks.RegisteredModel("registeredModelResource", new()
    {
        Aliases = new[]
        {
            new Databricks.Inputs.RegisteredModelAliasArgs
            {
                AliasName = "string",
                CatalogName = "string",
                Id = "string",
                ModelName = "string",
                SchemaName = "string",
                VersionNum = 0,
            },
        },
        BrowseOnly = false,
        CatalogName = "string",
        Comment = "string",
        CreatedAt = 0,
        CreatedBy = "string",
        FullName = "string",
        MetastoreId = "string",
        Name = "string",
        Owner = "string",
        SchemaName = "string",
        StorageLocation = "string",
        UpdatedAt = 0,
        UpdatedBy = "string",
    });
    
    example, err := databricks.NewRegisteredModel(ctx, "registeredModelResource", &databricks.RegisteredModelArgs{
    	Aliases: databricks.RegisteredModelAliasArray{
    		&databricks.RegisteredModelAliasArgs{
    			AliasName:   pulumi.String("string"),
    			CatalogName: pulumi.String("string"),
    			Id:          pulumi.String("string"),
    			ModelName:   pulumi.String("string"),
    			SchemaName:  pulumi.String("string"),
    			VersionNum:  pulumi.Int(0),
    		},
    	},
    	BrowseOnly:      pulumi.Bool(false),
    	CatalogName:     pulumi.String("string"),
    	Comment:         pulumi.String("string"),
    	CreatedAt:       pulumi.Int(0),
    	CreatedBy:       pulumi.String("string"),
    	FullName:        pulumi.String("string"),
    	MetastoreId:     pulumi.String("string"),
    	Name:            pulumi.String("string"),
    	Owner:           pulumi.String("string"),
    	SchemaName:      pulumi.String("string"),
    	StorageLocation: pulumi.String("string"),
    	UpdatedAt:       pulumi.Int(0),
    	UpdatedBy:       pulumi.String("string"),
    })
    
    var registeredModelResource = new RegisteredModel("registeredModelResource", RegisteredModelArgs.builder()
        .aliases(RegisteredModelAliasArgs.builder()
            .aliasName("string")
            .catalogName("string")
            .id("string")
            .modelName("string")
            .schemaName("string")
            .versionNum(0)
            .build())
        .browseOnly(false)
        .catalogName("string")
        .comment("string")
        .createdAt(0)
        .createdBy("string")
        .fullName("string")
        .metastoreId("string")
        .name("string")
        .owner("string")
        .schemaName("string")
        .storageLocation("string")
        .updatedAt(0)
        .updatedBy("string")
        .build());
    
    registered_model_resource = databricks.RegisteredModel("registeredModelResource",
        aliases=[{
            "alias_name": "string",
            "catalog_name": "string",
            "id": "string",
            "model_name": "string",
            "schema_name": "string",
            "version_num": 0,
        }],
        browse_only=False,
        catalog_name="string",
        comment="string",
        created_at=0,
        created_by="string",
        full_name="string",
        metastore_id="string",
        name="string",
        owner="string",
        schema_name="string",
        storage_location="string",
        updated_at=0,
        updated_by="string")
    
    const registeredModelResource = new databricks.RegisteredModel("registeredModelResource", {
        aliases: [{
            aliasName: "string",
            catalogName: "string",
            id: "string",
            modelName: "string",
            schemaName: "string",
            versionNum: 0,
        }],
        browseOnly: false,
        catalogName: "string",
        comment: "string",
        createdAt: 0,
        createdBy: "string",
        fullName: "string",
        metastoreId: "string",
        name: "string",
        owner: "string",
        schemaName: "string",
        storageLocation: "string",
        updatedAt: 0,
        updatedBy: "string",
    });
    
    type: databricks:RegisteredModel
    properties:
        aliases:
            - aliasName: string
              catalogName: string
              id: string
              modelName: string
              schemaName: string
              versionNum: 0
        browseOnly: false
        catalogName: string
        comment: string
        createdAt: 0
        createdBy: string
        fullName: string
        metastoreId: string
        name: string
        owner: string
        schemaName: string
        storageLocation: string
        updatedAt: 0
        updatedBy: string
    

    RegisteredModel Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The RegisteredModel resource accepts the following input properties:

    Aliases List<RegisteredModelAlias>
    BrowseOnly bool
    CatalogName string
    The name of the catalog where the schema and the registered model reside. Change of this parameter forces recreation of the resource.
    Comment string
    The comment attached to the registered model.
    CreatedAt int
    CreatedBy string
    FullName string
    MetastoreId string
    Name string
    The name of the registered model. Change of this parameter forces recreation of the resource.
    Owner string
    Name of the registered model owner.
    SchemaName string
    The name of the schema where the registered model resides. Change of this parameter forces recreation of the resource.
    StorageLocation string
    The storage location under which model version data files are stored. If the URL contains special characters, such as space, &, etc., they should be percent-encoded (space > %20, etc.). Change of this parameter forces recreation of the resource.
    UpdatedAt int
    UpdatedBy string
    Aliases []RegisteredModelAliasArgs
    BrowseOnly bool
    CatalogName string
    The name of the catalog where the schema and the registered model reside. Change of this parameter forces recreation of the resource.
    Comment string
    The comment attached to the registered model.
    CreatedAt int
    CreatedBy string
    FullName string
    MetastoreId string
    Name string
    The name of the registered model. Change of this parameter forces recreation of the resource.
    Owner string
    Name of the registered model owner.
    SchemaName string
    The name of the schema where the registered model resides. Change of this parameter forces recreation of the resource.
    StorageLocation string
    The storage location under which model version data files are stored. If the URL contains special characters, such as space, &, etc., they should be percent-encoded (space > %20, etc.). Change of this parameter forces recreation of the resource.
    UpdatedAt int
    UpdatedBy string
    aliases List<RegisteredModelAlias>
    browseOnly Boolean
    catalogName String
    The name of the catalog where the schema and the registered model reside. Change of this parameter forces recreation of the resource.
    comment String
    The comment attached to the registered model.
    createdAt Integer
    createdBy String
    fullName String
    metastoreId String
    name String
    The name of the registered model. Change of this parameter forces recreation of the resource.
    owner String
    Name of the registered model owner.
    schemaName String
    The name of the schema where the registered model resides. Change of this parameter forces recreation of the resource.
    storageLocation String
    The storage location under which model version data files are stored. If the URL contains special characters, such as space, &, etc., they should be percent-encoded (space > %20, etc.). Change of this parameter forces recreation of the resource.
    updatedAt Integer
    updatedBy String
    aliases RegisteredModelAlias[]
    browseOnly boolean
    catalogName string
    The name of the catalog where the schema and the registered model reside. Change of this parameter forces recreation of the resource.
    comment string
    The comment attached to the registered model.
    createdAt number
    createdBy string
    fullName string
    metastoreId string
    name string
    The name of the registered model. Change of this parameter forces recreation of the resource.
    owner string
    Name of the registered model owner.
    schemaName string
    The name of the schema where the registered model resides. Change of this parameter forces recreation of the resource.
    storageLocation string
    The storage location under which model version data files are stored. If the URL contains special characters, such as space, &, etc., they should be percent-encoded (space > %20, etc.). Change of this parameter forces recreation of the resource.
    updatedAt number
    updatedBy string
    aliases Sequence[RegisteredModelAliasArgs]
    browse_only bool
    catalog_name str
    The name of the catalog where the schema and the registered model reside. Change of this parameter forces recreation of the resource.
    comment str
    The comment attached to the registered model.
    created_at int
    created_by str
    full_name str
    metastore_id str
    name str
    The name of the registered model. Change of this parameter forces recreation of the resource.
    owner str
    Name of the registered model owner.
    schema_name str
    The name of the schema where the registered model resides. Change of this parameter forces recreation of the resource.
    storage_location str
    The storage location under which model version data files are stored. If the URL contains special characters, such as space, &, etc., they should be percent-encoded (space > %20, etc.). Change of this parameter forces recreation of the resource.
    updated_at int
    updated_by str
    aliases List<Property Map>
    browseOnly Boolean
    catalogName String
    The name of the catalog where the schema and the registered model reside. Change of this parameter forces recreation of the resource.
    comment String
    The comment attached to the registered model.
    createdAt Number
    createdBy String
    fullName String
    metastoreId String
    name String
    The name of the registered model. Change of this parameter forces recreation of the resource.
    owner String
    Name of the registered model owner.
    schemaName String
    The name of the schema where the registered model resides. Change of this parameter forces recreation of the resource.
    storageLocation String
    The storage location under which model version data files are stored. If the URL contains special characters, such as space, &, etc., they should be percent-encoded (space > %20, etc.). Change of this parameter forces recreation of the resource.
    updatedAt Number
    updatedBy String

    Outputs

    All input properties are implicitly available as output properties. Additionally, the RegisteredModel resource produces the following output properties:

    Id string
    The provider-assigned unique ID for this managed resource.
    Id string
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.
    id string
    The provider-assigned unique ID for this managed resource.
    id str
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing RegisteredModel Resource

    Get an existing RegisteredModel resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: RegisteredModelState, opts?: CustomResourceOptions): RegisteredModel
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            aliases: Optional[Sequence[RegisteredModelAliasArgs]] = None,
            browse_only: Optional[bool] = None,
            catalog_name: Optional[str] = None,
            comment: Optional[str] = None,
            created_at: Optional[int] = None,
            created_by: Optional[str] = None,
            full_name: Optional[str] = None,
            metastore_id: Optional[str] = None,
            name: Optional[str] = None,
            owner: Optional[str] = None,
            schema_name: Optional[str] = None,
            storage_location: Optional[str] = None,
            updated_at: Optional[int] = None,
            updated_by: Optional[str] = None) -> RegisteredModel
    func GetRegisteredModel(ctx *Context, name string, id IDInput, state *RegisteredModelState, opts ...ResourceOption) (*RegisteredModel, error)
    public static RegisteredModel Get(string name, Input<string> id, RegisteredModelState? state, CustomResourceOptions? opts = null)
    public static RegisteredModel get(String name, Output<String> id, RegisteredModelState state, CustomResourceOptions options)
    resources:  _:    type: databricks:RegisteredModel    get:      id: ${id}
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    Aliases List<RegisteredModelAlias>
    BrowseOnly bool
    CatalogName string
    The name of the catalog where the schema and the registered model reside. Change of this parameter forces recreation of the resource.
    Comment string
    The comment attached to the registered model.
    CreatedAt int
    CreatedBy string
    FullName string
    MetastoreId string
    Name string
    The name of the registered model. Change of this parameter forces recreation of the resource.
    Owner string
    Name of the registered model owner.
    SchemaName string
    The name of the schema where the registered model resides. Change of this parameter forces recreation of the resource.
    StorageLocation string
    The storage location under which model version data files are stored. If the URL contains special characters, such as space, &, etc., they should be percent-encoded (space > %20, etc.). Change of this parameter forces recreation of the resource.
    UpdatedAt int
    UpdatedBy string
    Aliases []RegisteredModelAliasArgs
    BrowseOnly bool
    CatalogName string
    The name of the catalog where the schema and the registered model reside. Change of this parameter forces recreation of the resource.
    Comment string
    The comment attached to the registered model.
    CreatedAt int
    CreatedBy string
    FullName string
    MetastoreId string
    Name string
    The name of the registered model. Change of this parameter forces recreation of the resource.
    Owner string
    Name of the registered model owner.
    SchemaName string
    The name of the schema where the registered model resides. Change of this parameter forces recreation of the resource.
    StorageLocation string
    The storage location under which model version data files are stored. If the URL contains special characters, such as space, &, etc., they should be percent-encoded (space > %20, etc.). Change of this parameter forces recreation of the resource.
    UpdatedAt int
    UpdatedBy string
    aliases List<RegisteredModelAlias>
    browseOnly Boolean
    catalogName String
    The name of the catalog where the schema and the registered model reside. Change of this parameter forces recreation of the resource.
    comment String
    The comment attached to the registered model.
    createdAt Integer
    createdBy String
    fullName String
    metastoreId String
    name String
    The name of the registered model. Change of this parameter forces recreation of the resource.
    owner String
    Name of the registered model owner.
    schemaName String
    The name of the schema where the registered model resides. Change of this parameter forces recreation of the resource.
    storageLocation String
    The storage location under which model version data files are stored. If the URL contains special characters, such as space, &, etc., they should be percent-encoded (space > %20, etc.). Change of this parameter forces recreation of the resource.
    updatedAt Integer
    updatedBy String
    aliases RegisteredModelAlias[]
    browseOnly boolean
    catalogName string
    The name of the catalog where the schema and the registered model reside. Change of this parameter forces recreation of the resource.
    comment string
    The comment attached to the registered model.
    createdAt number
    createdBy string
    fullName string
    metastoreId string
    name string
    The name of the registered model. Change of this parameter forces recreation of the resource.
    owner string
    Name of the registered model owner.
    schemaName string
    The name of the schema where the registered model resides. Change of this parameter forces recreation of the resource.
    storageLocation string
    The storage location under which model version data files are stored. If the URL contains special characters, such as space, &, etc., they should be percent-encoded (space > %20, etc.). Change of this parameter forces recreation of the resource.
    updatedAt number
    updatedBy string
    aliases Sequence[RegisteredModelAliasArgs]
    browse_only bool
    catalog_name str
    The name of the catalog where the schema and the registered model reside. Change of this parameter forces recreation of the resource.
    comment str
    The comment attached to the registered model.
    created_at int
    created_by str
    full_name str
    metastore_id str
    name str
    The name of the registered model. Change of this parameter forces recreation of the resource.
    owner str
    Name of the registered model owner.
    schema_name str
    The name of the schema where the registered model resides. Change of this parameter forces recreation of the resource.
    storage_location str
    The storage location under which model version data files are stored. If the URL contains special characters, such as space, &, etc., they should be percent-encoded (space > %20, etc.). Change of this parameter forces recreation of the resource.
    updated_at int
    updated_by str
    aliases List<Property Map>
    browseOnly Boolean
    catalogName String
    The name of the catalog where the schema and the registered model reside. Change of this parameter forces recreation of the resource.
    comment String
    The comment attached to the registered model.
    createdAt Number
    createdBy String
    fullName String
    metastoreId String
    name String
    The name of the registered model. Change of this parameter forces recreation of the resource.
    owner String
    Name of the registered model owner.
    schemaName String
    The name of the schema where the registered model resides. Change of this parameter forces recreation of the resource.
    storageLocation String
    The storage location under which model version data files are stored. If the URL contains special characters, such as space, &, etc., they should be percent-encoded (space > %20, etc.). Change of this parameter forces recreation of the resource.
    updatedAt Number
    updatedBy String

    Supporting Types

    RegisteredModelAlias, RegisteredModelAliasArgs

    AliasName string
    CatalogName string
    The name of the catalog where the schema and the registered model reside. Change of this parameter forces recreation of the resource.
    Id string
    Equal to the full name of the model (catalog_name.schema_name.name) and used to identify the model uniquely across the metastore.
    ModelName string
    SchemaName string
    The name of the schema where the registered model resides. Change of this parameter forces recreation of the resource.
    VersionNum int
    AliasName string
    CatalogName string
    The name of the catalog where the schema and the registered model reside. Change of this parameter forces recreation of the resource.
    Id string
    Equal to the full name of the model (catalog_name.schema_name.name) and used to identify the model uniquely across the metastore.
    ModelName string
    SchemaName string
    The name of the schema where the registered model resides. Change of this parameter forces recreation of the resource.
    VersionNum int
    aliasName String
    catalogName String
    The name of the catalog where the schema and the registered model reside. Change of this parameter forces recreation of the resource.
    id String
    Equal to the full name of the model (catalog_name.schema_name.name) and used to identify the model uniquely across the metastore.
    modelName String
    schemaName String
    The name of the schema where the registered model resides. Change of this parameter forces recreation of the resource.
    versionNum Integer
    aliasName string
    catalogName string
    The name of the catalog where the schema and the registered model reside. Change of this parameter forces recreation of the resource.
    id string
    Equal to the full name of the model (catalog_name.schema_name.name) and used to identify the model uniquely across the metastore.
    modelName string
    schemaName string
    The name of the schema where the registered model resides. Change of this parameter forces recreation of the resource.
    versionNum number
    alias_name str
    catalog_name str
    The name of the catalog where the schema and the registered model reside. Change of this parameter forces recreation of the resource.
    id str
    Equal to the full name of the model (catalog_name.schema_name.name) and used to identify the model uniquely across the metastore.
    model_name str
    schema_name str
    The name of the schema where the registered model resides. Change of this parameter forces recreation of the resource.
    version_num int
    aliasName String
    catalogName String
    The name of the catalog where the schema and the registered model reside. Change of this parameter forces recreation of the resource.
    id String
    Equal to the full name of the model (catalog_name.schema_name.name) and used to identify the model uniquely across the metastore.
    modelName String
    schemaName String
    The name of the schema where the registered model resides. Change of this parameter forces recreation of the resource.
    versionNum Number

    Import

    The registered model resource can be imported using the full (3-level) name of the model.

    hcl

    import {

    to = databricks_registered_model.this

    id = “<catalog_name>.<schema_name>.<model_name>”

    }

    Alternatively, when using terraform version 1.4 or earlier, import using the pulumi import command:

    bash

    $ pulumi import databricks:index/registeredModel:RegisteredModel this <catalog_name>.<schema_name>.<model_name>
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    databricks pulumi/pulumi-databricks
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the databricks Terraform Provider.
    databricks logo
    Databricks v1.78.0 published on Friday, Nov 7, 2025 by Pulumi
      Meet Neo: Your AI Platform Teammate