github.com/asifdxtreme/cli@v6.1.3-0.20150123051144-9ead8700b4ae+incompatible/cf/api/resources/spaces.go (about)

     1  package resources
     2  
     3  import "github.com/cloudfoundry/cli/cf/models"
     4  
     5  type SpaceResource struct {
     6  	Resource
     7  	Entity SpaceEntity
     8  }
     9  
    10  type SpaceEntity struct {
    11  	Name             string
    12  	Organization     OrganizationResource
    13  	Applications     []ApplicationResource `json:"apps"`
    14  	Domains          []DomainResource
    15  	ServiceInstances []ServiceInstanceResource `json:"service_instances"`
    16  	SecurityGroups   []SecurityGroupResource   `json:"security_groups"`
    17  	SpaceQuotaGuid   string                    `json:"space_quota_definition_guid"`
    18  }
    19  
    20  func (resource SpaceResource) ToFields() (fields models.SpaceFields) {
    21  	fields.Guid = resource.Metadata.Guid
    22  	fields.Name = resource.Entity.Name
    23  	return
    24  }
    25  
    26  func (resource SpaceResource) ToModel() (space models.Space) {
    27  	space.SpaceFields = resource.ToFields()
    28  	for _, app := range resource.Entity.Applications {
    29  		space.Applications = append(space.Applications, app.ToFields())
    30  	}
    31  
    32  	for _, domainResource := range resource.Entity.Domains {
    33  		space.Domains = append(space.Domains, domainResource.ToFields())
    34  	}
    35  
    36  	for _, serviceResource := range resource.Entity.ServiceInstances {
    37  		space.ServiceInstances = append(space.ServiceInstances, serviceResource.ToFields())
    38  	}
    39  
    40  	for _, securityGroupResource := range resource.Entity.SecurityGroups {
    41  		space.SecurityGroups = append(space.SecurityGroups, securityGroupResource.ToFields())
    42  	}
    43  
    44  	space.Organization = resource.Entity.Organization.ToFields()
    45  	space.SpaceQuotaGuid = resource.Entity.SpaceQuotaGuid
    46  	return
    47  }