func NewClusterPrincipalAssignment(ctx *pulumi.Context,
	name string, args *ClusterPrincipalAssignmentArgs, opts ...pulumi.ResourceOption) (*ClusterPrincipalAssignment, error) {
	if args == nil {
		return nil, errors.New("missing one or more required arguments")
	}

	if args.ClusterName == nil {
		return nil, errors.New("invalid value for required argument 'ClusterName'")
	}
	if args.PrincipalId == nil {
		return nil, errors.New("invalid value for required argument 'PrincipalId'")
	}
	if args.PrincipalType == nil {
		return nil, errors.New("invalid value for required argument 'PrincipalType'")
	}
	if args.ResourceGroupName == nil {
		return nil, errors.New("invalid value for required argument 'ResourceGroupName'")
	}
	if args.Role == nil {
		return nil, errors.New("invalid value for required argument 'Role'")
	}
	if args.TenantId == nil {
		return nil, errors.New("invalid value for required argument 'TenantId'")
	}
	var resource ClusterPrincipalAssignment
	err := ctx.RegisterResource("azure:kusto/clusterPrincipalAssignment:ClusterPrincipalAssignment", name, args, &resource, opts...)
	if err != nil {
		return nil, err
	}
	return &resource, nil
}
// NewClusterPrincipalAssignment registers a new resource with the given unique name, arguments, and options.
NewClusterPrincipalAssignment registers a new resource with the given unique name, arguments, and options.
// NewClusterPrincipalAssignment registers a new resource with the given unique name arguments and options .
func NewClusterPrincipalAssignment(ctx *pulumi.Context,
	name string, args *ClusterPrincipalAssignmentArgs, opts ...pulumi.ResourceOption) (*ClusterPrincipalAssignment, error) {
	if args == nil {
		return nil, errors.New("missing one or more required arguments")
	}
	if args.ClusterName == nil {
		return nil, errors.New("invalid value for required argument 'ClusterName'")
	}
	if args.PrincipalId == nil {
		return nil, errors.New("invalid value for required argument 'PrincipalId'")
	}
	if args.PrincipalType == nil {
		return nil, errors.New("invalid value for required argument 'PrincipalType'")
	}
	if args.ResourceGroupName == nil {
		return nil, errors.New("invalid value for required argument 'ResourceGroupName'")
	}
	if args.Role == nil {
		return nil, errors.New("invalid value for required argument 'Role'")
	}
	if args.TenantId == nil {
		return nil, errors.New("invalid value for required argument 'TenantId'")
	}
	var resource ClusterPrincipalAssignment
	err := ctx.RegisterResource("azure:kusto/clusterPrincipalAssignment:ClusterPrincipalAssignment", name, args, &resource, opts...)
	if err != nil {
		return nil, err
	}
	return &resource, nil
}
func NewClusterPrincipalAssignment ( ctx * pulumi . Context , name string , args * ClusterPrincipalAssignmentArgs , opts ... pulumi . ResourceOption ) ( * ClusterPrincipalAssignment , error ) { if args == nil { return nil , errors . New ( " " ) } if args . ClusterName == nil { return nil , errors . New ( " " ) } if args . PrincipalId == nil { return nil , errors . New ( " " ) } if args . PrincipalType == nil { return nil , errors . New ( " " ) } if args . ResourceGroupName == nil { return nil , errors . New ( " " ) } if args . Role == nil { return nil , errors . New ( " " ) } if args . TenantId == nil { return nil , errors . New ( " " ) } var resource ClusterPrincipalAssignment err := ctx . RegisterResource ( " " , name , args , & resource , opts ... ) if err != nil { return nil , err } return & resource , nil }
NewClusterPrincipalAssignment registers a new resource with the given unique name, arguments, and options.
NewClusterPrincipalAssignment registers a new resource with the given unique name arguments and options .