/*
 * peridot/proto/v1/batch.proto
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * API version: version not set
 */

// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

package peridotopenapi

import (
	"encoding/json"
	"time"
)

// V1Project struct for V1Project
type V1Project struct {
	Id *string `json:"id,omitempty"`
	CreatedAt *time.Time `json:"createdAt,omitempty"`
	UpdatedAt *time.Time `json:"updatedAt,omitempty"`
	Name *string `json:"name,omitempty"`
	MajorVersion *int32 `json:"majorVersion,omitempty"`
	Archs *[]string `json:"archs,omitempty"`
	DistTag *string `json:"distTag,omitempty"`
	TargetGitlabHost *string `json:"targetGitlabHost,omitempty"`
	TargetPrefix *string `json:"targetPrefix,omitempty"`
	TargetBranchPrefix *string `json:"targetBranchPrefix,omitempty"`
	SourceGitHost *string `json:"sourceGitHost,omitempty"`
	SourcePrefix *string `json:"sourcePrefix,omitempty"`
	SourceBranchPrefix *string `json:"sourceBranchPrefix,omitempty"`
	CdnUrl *string `json:"cdnUrl,omitempty"`
	StreamMode *bool `json:"streamMode,omitempty"`
	TargetVendor *string `json:"targetVendor,omitempty"`
	AdditionalVendor *string `json:"additionalVendor,omitempty"`
	FollowImportDist *bool `json:"followImportDist,omitempty"`
	BranchSuffix *string `json:"branchSuffix,omitempty"`
	GitMakePublic *bool `json:"gitMakePublic,omitempty"`
	VendorMacro *string `json:"vendorMacro,omitempty"`
	PackagerMacro *string `json:"packagerMacro,omitempty"`
}

// NewV1Project instantiates a new V1Project object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewV1Project() *V1Project {
	this := V1Project{}
	return &this
}

// NewV1ProjectWithDefaults instantiates a new V1Project object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewV1ProjectWithDefaults() *V1Project {
	this := V1Project{}
	return &this
}

// GetId returns the Id field value if set, zero value otherwise.
func (o *V1Project) GetId() string {
	if o == nil || o.Id == nil {
		var ret string
		return ret
	}
	return *o.Id
}

// GetIdOk returns a tuple with the Id field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetIdOk() (*string, bool) {
	if o == nil || o.Id == nil {
		return nil, false
	}
	return o.Id, true
}

// HasId returns a boolean if a field has been set.
func (o *V1Project) HasId() bool {
	if o != nil && o.Id != nil {
		return true
	}

	return false
}

// SetId gets a reference to the given string and assigns it to the Id field.
func (o *V1Project) SetId(v string) {
	o.Id = &v
}

// GetCreatedAt returns the CreatedAt field value if set, zero value otherwise.
func (o *V1Project) GetCreatedAt() time.Time {
	if o == nil || o.CreatedAt == nil {
		var ret time.Time
		return ret
	}
	return *o.CreatedAt
}

// GetCreatedAtOk returns a tuple with the CreatedAt field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetCreatedAtOk() (*time.Time, bool) {
	if o == nil || o.CreatedAt == nil {
		return nil, false
	}
	return o.CreatedAt, true
}

// HasCreatedAt returns a boolean if a field has been set.
func (o *V1Project) HasCreatedAt() bool {
	if o != nil && o.CreatedAt != nil {
		return true
	}

	return false
}

// SetCreatedAt gets a reference to the given time.Time and assigns it to the CreatedAt field.
func (o *V1Project) SetCreatedAt(v time.Time) {
	o.CreatedAt = &v
}

// GetUpdatedAt returns the UpdatedAt field value if set, zero value otherwise.
func (o *V1Project) GetUpdatedAt() time.Time {
	if o == nil || o.UpdatedAt == nil {
		var ret time.Time
		return ret
	}
	return *o.UpdatedAt
}

// GetUpdatedAtOk returns a tuple with the UpdatedAt field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetUpdatedAtOk() (*time.Time, bool) {
	if o == nil || o.UpdatedAt == nil {
		return nil, false
	}
	return o.UpdatedAt, true
}

// HasUpdatedAt returns a boolean if a field has been set.
func (o *V1Project) HasUpdatedAt() bool {
	if o != nil && o.UpdatedAt != nil {
		return true
	}

	return false
}

// SetUpdatedAt gets a reference to the given time.Time and assigns it to the UpdatedAt field.
func (o *V1Project) SetUpdatedAt(v time.Time) {
	o.UpdatedAt = &v
}

// GetName returns the Name field value if set, zero value otherwise.
func (o *V1Project) GetName() string {
	if o == nil || o.Name == nil {
		var ret string
		return ret
	}
	return *o.Name
}

// GetNameOk returns a tuple with the Name field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetNameOk() (*string, bool) {
	if o == nil || o.Name == nil {
		return nil, false
	}
	return o.Name, true
}

// HasName returns a boolean if a field has been set.
func (o *V1Project) HasName() bool {
	if o != nil && o.Name != nil {
		return true
	}

	return false
}

// SetName gets a reference to the given string and assigns it to the Name field.
func (o *V1Project) SetName(v string) {
	o.Name = &v
}

// GetMajorVersion returns the MajorVersion field value if set, zero value otherwise.
func (o *V1Project) GetMajorVersion() int32 {
	if o == nil || o.MajorVersion == nil {
		var ret int32
		return ret
	}
	return *o.MajorVersion
}

// GetMajorVersionOk returns a tuple with the MajorVersion field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetMajorVersionOk() (*int32, bool) {
	if o == nil || o.MajorVersion == nil {
		return nil, false
	}
	return o.MajorVersion, true
}

// HasMajorVersion returns a boolean if a field has been set.
func (o *V1Project) HasMajorVersion() bool {
	if o != nil && o.MajorVersion != nil {
		return true
	}

	return false
}

// SetMajorVersion gets a reference to the given int32 and assigns it to the MajorVersion field.
func (o *V1Project) SetMajorVersion(v int32) {
	o.MajorVersion = &v
}

// GetArchs returns the Archs field value if set, zero value otherwise.
func (o *V1Project) GetArchs() []string {
	if o == nil || o.Archs == nil {
		var ret []string
		return ret
	}
	return *o.Archs
}

// GetArchsOk returns a tuple with the Archs field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetArchsOk() (*[]string, bool) {
	if o == nil || o.Archs == nil {
		return nil, false
	}
	return o.Archs, true
}

// HasArchs returns a boolean if a field has been set.
func (o *V1Project) HasArchs() bool {
	if o != nil && o.Archs != nil {
		return true
	}

	return false
}

// SetArchs gets a reference to the given []string and assigns it to the Archs field.
func (o *V1Project) SetArchs(v []string) {
	o.Archs = &v
}

// GetDistTag returns the DistTag field value if set, zero value otherwise.
func (o *V1Project) GetDistTag() string {
	if o == nil || o.DistTag == nil {
		var ret string
		return ret
	}
	return *o.DistTag
}

// GetDistTagOk returns a tuple with the DistTag field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetDistTagOk() (*string, bool) {
	if o == nil || o.DistTag == nil {
		return nil, false
	}
	return o.DistTag, true
}

// HasDistTag returns a boolean if a field has been set.
func (o *V1Project) HasDistTag() bool {
	if o != nil && o.DistTag != nil {
		return true
	}

	return false
}

// SetDistTag gets a reference to the given string and assigns it to the DistTag field.
func (o *V1Project) SetDistTag(v string) {
	o.DistTag = &v
}

// GetTargetGitlabHost returns the TargetGitlabHost field value if set, zero value otherwise.
func (o *V1Project) GetTargetGitlabHost() string {
	if o == nil || o.TargetGitlabHost == nil {
		var ret string
		return ret
	}
	return *o.TargetGitlabHost
}

// GetTargetGitlabHostOk returns a tuple with the TargetGitlabHost field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetTargetGitlabHostOk() (*string, bool) {
	if o == nil || o.TargetGitlabHost == nil {
		return nil, false
	}
	return o.TargetGitlabHost, true
}

// HasTargetGitlabHost returns a boolean if a field has been set.
func (o *V1Project) HasTargetGitlabHost() bool {
	if o != nil && o.TargetGitlabHost != nil {
		return true
	}

	return false
}

// SetTargetGitlabHost gets a reference to the given string and assigns it to the TargetGitlabHost field.
func (o *V1Project) SetTargetGitlabHost(v string) {
	o.TargetGitlabHost = &v
}

// GetTargetPrefix returns the TargetPrefix field value if set, zero value otherwise.
func (o *V1Project) GetTargetPrefix() string {
	if o == nil || o.TargetPrefix == nil {
		var ret string
		return ret
	}
	return *o.TargetPrefix
}

// GetTargetPrefixOk returns a tuple with the TargetPrefix field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetTargetPrefixOk() (*string, bool) {
	if o == nil || o.TargetPrefix == nil {
		return nil, false
	}
	return o.TargetPrefix, true
}

// HasTargetPrefix returns a boolean if a field has been set.
func (o *V1Project) HasTargetPrefix() bool {
	if o != nil && o.TargetPrefix != nil {
		return true
	}

	return false
}

// SetTargetPrefix gets a reference to the given string and assigns it to the TargetPrefix field.
func (o *V1Project) SetTargetPrefix(v string) {
	o.TargetPrefix = &v
}

// GetTargetBranchPrefix returns the TargetBranchPrefix field value if set, zero value otherwise.
func (o *V1Project) GetTargetBranchPrefix() string {
	if o == nil || o.TargetBranchPrefix == nil {
		var ret string
		return ret
	}
	return *o.TargetBranchPrefix
}

// GetTargetBranchPrefixOk returns a tuple with the TargetBranchPrefix field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetTargetBranchPrefixOk() (*string, bool) {
	if o == nil || o.TargetBranchPrefix == nil {
		return nil, false
	}
	return o.TargetBranchPrefix, true
}

// HasTargetBranchPrefix returns a boolean if a field has been set.
func (o *V1Project) HasTargetBranchPrefix() bool {
	if o != nil && o.TargetBranchPrefix != nil {
		return true
	}

	return false
}

// SetTargetBranchPrefix gets a reference to the given string and assigns it to the TargetBranchPrefix field.
func (o *V1Project) SetTargetBranchPrefix(v string) {
	o.TargetBranchPrefix = &v
}

// GetSourceGitHost returns the SourceGitHost field value if set, zero value otherwise.
func (o *V1Project) GetSourceGitHost() string {
	if o == nil || o.SourceGitHost == nil {
		var ret string
		return ret
	}
	return *o.SourceGitHost
}

// GetSourceGitHostOk returns a tuple with the SourceGitHost field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetSourceGitHostOk() (*string, bool) {
	if o == nil || o.SourceGitHost == nil {
		return nil, false
	}
	return o.SourceGitHost, true
}

// HasSourceGitHost returns a boolean if a field has been set.
func (o *V1Project) HasSourceGitHost() bool {
	if o != nil && o.SourceGitHost != nil {
		return true
	}

	return false
}

// SetSourceGitHost gets a reference to the given string and assigns it to the SourceGitHost field.
func (o *V1Project) SetSourceGitHost(v string) {
	o.SourceGitHost = &v
}

// GetSourcePrefix returns the SourcePrefix field value if set, zero value otherwise.
func (o *V1Project) GetSourcePrefix() string {
	if o == nil || o.SourcePrefix == nil {
		var ret string
		return ret
	}
	return *o.SourcePrefix
}

// GetSourcePrefixOk returns a tuple with the SourcePrefix field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetSourcePrefixOk() (*string, bool) {
	if o == nil || o.SourcePrefix == nil {
		return nil, false
	}
	return o.SourcePrefix, true
}

// HasSourcePrefix returns a boolean if a field has been set.
func (o *V1Project) HasSourcePrefix() bool {
	if o != nil && o.SourcePrefix != nil {
		return true
	}

	return false
}

// SetSourcePrefix gets a reference to the given string and assigns it to the SourcePrefix field.
func (o *V1Project) SetSourcePrefix(v string) {
	o.SourcePrefix = &v
}

// GetSourceBranchPrefix returns the SourceBranchPrefix field value if set, zero value otherwise.
func (o *V1Project) GetSourceBranchPrefix() string {
	if o == nil || o.SourceBranchPrefix == nil {
		var ret string
		return ret
	}
	return *o.SourceBranchPrefix
}

// GetSourceBranchPrefixOk returns a tuple with the SourceBranchPrefix field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetSourceBranchPrefixOk() (*string, bool) {
	if o == nil || o.SourceBranchPrefix == nil {
		return nil, false
	}
	return o.SourceBranchPrefix, true
}

// HasSourceBranchPrefix returns a boolean if a field has been set.
func (o *V1Project) HasSourceBranchPrefix() bool {
	if o != nil && o.SourceBranchPrefix != nil {
		return true
	}

	return false
}

// SetSourceBranchPrefix gets a reference to the given string and assigns it to the SourceBranchPrefix field.
func (o *V1Project) SetSourceBranchPrefix(v string) {
	o.SourceBranchPrefix = &v
}

// GetCdnUrl returns the CdnUrl field value if set, zero value otherwise.
func (o *V1Project) GetCdnUrl() string {
	if o == nil || o.CdnUrl == nil {
		var ret string
		return ret
	}
	return *o.CdnUrl
}

// GetCdnUrlOk returns a tuple with the CdnUrl field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetCdnUrlOk() (*string, bool) {
	if o == nil || o.CdnUrl == nil {
		return nil, false
	}
	return o.CdnUrl, true
}

// HasCdnUrl returns a boolean if a field has been set.
func (o *V1Project) HasCdnUrl() bool {
	if o != nil && o.CdnUrl != nil {
		return true
	}

	return false
}

// SetCdnUrl gets a reference to the given string and assigns it to the CdnUrl field.
func (o *V1Project) SetCdnUrl(v string) {
	o.CdnUrl = &v
}

// GetStreamMode returns the StreamMode field value if set, zero value otherwise.
func (o *V1Project) GetStreamMode() bool {
	if o == nil || o.StreamMode == nil {
		var ret bool
		return ret
	}
	return *o.StreamMode
}

// GetStreamModeOk returns a tuple with the StreamMode field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetStreamModeOk() (*bool, bool) {
	if o == nil || o.StreamMode == nil {
		return nil, false
	}
	return o.StreamMode, true
}

// HasStreamMode returns a boolean if a field has been set.
func (o *V1Project) HasStreamMode() bool {
	if o != nil && o.StreamMode != nil {
		return true
	}

	return false
}

// SetStreamMode gets a reference to the given bool and assigns it to the StreamMode field.
func (o *V1Project) SetStreamMode(v bool) {
	o.StreamMode = &v
}

// GetTargetVendor returns the TargetVendor field value if set, zero value otherwise.
func (o *V1Project) GetTargetVendor() string {
	if o == nil || o.TargetVendor == nil {
		var ret string
		return ret
	}
	return *o.TargetVendor
}

// GetTargetVendorOk returns a tuple with the TargetVendor field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetTargetVendorOk() (*string, bool) {
	if o == nil || o.TargetVendor == nil {
		return nil, false
	}
	return o.TargetVendor, true
}

// HasTargetVendor returns a boolean if a field has been set.
func (o *V1Project) HasTargetVendor() bool {
	if o != nil && o.TargetVendor != nil {
		return true
	}

	return false
}

// SetTargetVendor gets a reference to the given string and assigns it to the TargetVendor field.
func (o *V1Project) SetTargetVendor(v string) {
	o.TargetVendor = &v
}

// GetAdditionalVendor returns the AdditionalVendor field value if set, zero value otherwise.
func (o *V1Project) GetAdditionalVendor() string {
	if o == nil || o.AdditionalVendor == nil {
		var ret string
		return ret
	}
	return *o.AdditionalVendor
}

// GetAdditionalVendorOk returns a tuple with the AdditionalVendor field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetAdditionalVendorOk() (*string, bool) {
	if o == nil || o.AdditionalVendor == nil {
		return nil, false
	}
	return o.AdditionalVendor, true
}

// HasAdditionalVendor returns a boolean if a field has been set.
func (o *V1Project) HasAdditionalVendor() bool {
	if o != nil && o.AdditionalVendor != nil {
		return true
	}

	return false
}

// SetAdditionalVendor gets a reference to the given string and assigns it to the AdditionalVendor field.
func (o *V1Project) SetAdditionalVendor(v string) {
	o.AdditionalVendor = &v
}

// GetFollowImportDist returns the FollowImportDist field value if set, zero value otherwise.
func (o *V1Project) GetFollowImportDist() bool {
	if o == nil || o.FollowImportDist == nil {
		var ret bool
		return ret
	}
	return *o.FollowImportDist
}

// GetFollowImportDistOk returns a tuple with the FollowImportDist field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetFollowImportDistOk() (*bool, bool) {
	if o == nil || o.FollowImportDist == nil {
		return nil, false
	}
	return o.FollowImportDist, true
}

// HasFollowImportDist returns a boolean if a field has been set.
func (o *V1Project) HasFollowImportDist() bool {
	if o != nil && o.FollowImportDist != nil {
		return true
	}

	return false
}

// SetFollowImportDist gets a reference to the given bool and assigns it to the FollowImportDist field.
func (o *V1Project) SetFollowImportDist(v bool) {
	o.FollowImportDist = &v
}

// GetBranchSuffix returns the BranchSuffix field value if set, zero value otherwise.
func (o *V1Project) GetBranchSuffix() string {
	if o == nil || o.BranchSuffix == nil {
		var ret string
		return ret
	}
	return *o.BranchSuffix
}

// GetBranchSuffixOk returns a tuple with the BranchSuffix field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetBranchSuffixOk() (*string, bool) {
	if o == nil || o.BranchSuffix == nil {
		return nil, false
	}
	return o.BranchSuffix, true
}

// HasBranchSuffix returns a boolean if a field has been set.
func (o *V1Project) HasBranchSuffix() bool {
	if o != nil && o.BranchSuffix != nil {
		return true
	}

	return false
}

// SetBranchSuffix gets a reference to the given string and assigns it to the BranchSuffix field.
func (o *V1Project) SetBranchSuffix(v string) {
	o.BranchSuffix = &v
}

// GetGitMakePublic returns the GitMakePublic field value if set, zero value otherwise.
func (o *V1Project) GetGitMakePublic() bool {
	if o == nil || o.GitMakePublic == nil {
		var ret bool
		return ret
	}
	return *o.GitMakePublic
}

// GetGitMakePublicOk returns a tuple with the GitMakePublic field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetGitMakePublicOk() (*bool, bool) {
	if o == nil || o.GitMakePublic == nil {
		return nil, false
	}
	return o.GitMakePublic, true
}

// HasGitMakePublic returns a boolean if a field has been set.
func (o *V1Project) HasGitMakePublic() bool {
	if o != nil && o.GitMakePublic != nil {
		return true
	}

	return false
}

// SetGitMakePublic gets a reference to the given bool and assigns it to the GitMakePublic field.
func (o *V1Project) SetGitMakePublic(v bool) {
	o.GitMakePublic = &v
}

// GetVendorMacro returns the VendorMacro field value if set, zero value otherwise.
func (o *V1Project) GetVendorMacro() string {
	if o == nil || o.VendorMacro == nil {
		var ret string
		return ret
	}
	return *o.VendorMacro
}

// GetVendorMacroOk returns a tuple with the VendorMacro field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetVendorMacroOk() (*string, bool) {
	if o == nil || o.VendorMacro == nil {
		return nil, false
	}
	return o.VendorMacro, true
}

// HasVendorMacro returns a boolean if a field has been set.
func (o *V1Project) HasVendorMacro() bool {
	if o != nil && o.VendorMacro != nil {
		return true
	}

	return false
}

// SetVendorMacro gets a reference to the given string and assigns it to the VendorMacro field.
func (o *V1Project) SetVendorMacro(v string) {
	o.VendorMacro = &v
}

// GetPackagerMacro returns the PackagerMacro field value if set, zero value otherwise.
func (o *V1Project) GetPackagerMacro() string {
	if o == nil || o.PackagerMacro == nil {
		var ret string
		return ret
	}
	return *o.PackagerMacro
}

// GetPackagerMacroOk returns a tuple with the PackagerMacro field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *V1Project) GetPackagerMacroOk() (*string, bool) {
	if o == nil || o.PackagerMacro == nil {
		return nil, false
	}
	return o.PackagerMacro, true
}

// HasPackagerMacro returns a boolean if a field has been set.
func (o *V1Project) HasPackagerMacro() bool {
	if o != nil && o.PackagerMacro != nil {
		return true
	}

	return false
}

// SetPackagerMacro gets a reference to the given string and assigns it to the PackagerMacro field.
func (o *V1Project) SetPackagerMacro(v string) {
	o.PackagerMacro = &v
}

func (o V1Project) MarshalJSON() ([]byte, error) {
	toSerialize := map[string]interface{}{}
	if o.Id != nil {
		toSerialize["id"] = o.Id
	}
	if o.CreatedAt != nil {
		toSerialize["createdAt"] = o.CreatedAt
	}
	if o.UpdatedAt != nil {
		toSerialize["updatedAt"] = o.UpdatedAt
	}
	if o.Name != nil {
		toSerialize["name"] = o.Name
	}
	if o.MajorVersion != nil {
		toSerialize["majorVersion"] = o.MajorVersion
	}
	if o.Archs != nil {
		toSerialize["archs"] = o.Archs
	}
	if o.DistTag != nil {
		toSerialize["distTag"] = o.DistTag
	}
	if o.TargetGitlabHost != nil {
		toSerialize["targetGitlabHost"] = o.TargetGitlabHost
	}
	if o.TargetPrefix != nil {
		toSerialize["targetPrefix"] = o.TargetPrefix
	}
	if o.TargetBranchPrefix != nil {
		toSerialize["targetBranchPrefix"] = o.TargetBranchPrefix
	}
	if o.SourceGitHost != nil {
		toSerialize["sourceGitHost"] = o.SourceGitHost
	}
	if o.SourcePrefix != nil {
		toSerialize["sourcePrefix"] = o.SourcePrefix
	}
	if o.SourceBranchPrefix != nil {
		toSerialize["sourceBranchPrefix"] = o.SourceBranchPrefix
	}
	if o.CdnUrl != nil {
		toSerialize["cdnUrl"] = o.CdnUrl
	}
	if o.StreamMode != nil {
		toSerialize["streamMode"] = o.StreamMode
	}
	if o.TargetVendor != nil {
		toSerialize["targetVendor"] = o.TargetVendor
	}
	if o.AdditionalVendor != nil {
		toSerialize["additionalVendor"] = o.AdditionalVendor
	}
	if o.FollowImportDist != nil {
		toSerialize["followImportDist"] = o.FollowImportDist
	}
	if o.BranchSuffix != nil {
		toSerialize["branchSuffix"] = o.BranchSuffix
	}
	if o.GitMakePublic != nil {
		toSerialize["gitMakePublic"] = o.GitMakePublic
	}
	if o.VendorMacro != nil {
		toSerialize["vendorMacro"] = o.VendorMacro
	}
	if o.PackagerMacro != nil {
		toSerialize["packagerMacro"] = o.PackagerMacro
	}
	return json.Marshal(toSerialize)
}

type NullableV1Project struct {
	value *V1Project
	isSet bool
}

func (v NullableV1Project) Get() *V1Project {
	return v.value
}

func (v *NullableV1Project) Set(val *V1Project) {
	v.value = val
	v.isSet = true
}

func (v NullableV1Project) IsSet() bool {
	return v.isSet
}

func (v *NullableV1Project) Unset() {
	v.value = nil
	v.isSet = false
}

func NewNullableV1Project(val *V1Project) *NullableV1Project {
	return &NullableV1Project{value: val, isSet: true}
}

func (v NullableV1Project) MarshalJSON() ([]byte, error) {
	return json.Marshal(v.value)
}

func (v *NullableV1Project) UnmarshalJSON(src []byte) error {
	v.isSet = true
	return json.Unmarshal(src, &v.value)
}