// Path: src/spring-cloud-cloudfoundry-service-broker/src/main/java/org/springframework/cloud/servicebroker/model/Catalog.java
// @Getter
// @ToString
// @EqualsAndHashCode
// @JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE)
// @JsonIgnoreProperties(ignoreUnknown = true)
// public class Catalog {
// 
// 	/**
// 	 * A list of service offerings provided by the service broker.
// 	 */
// 	@NotEmpty
// 	@JsonSerialize(nullsUsing = EmptyListSerializer.class)
// 	@JsonProperty("services")
// 	private final List<ServiceDefinition> serviceDefinitions;
// 
// 	public Catalog() {
// 		this.serviceDefinitions = null;
// 	}
// 
// 	public Catalog(List<ServiceDefinition> serviceDefinitions) {
// 		this.serviceDefinitions = serviceDefinitions;
// 	}
// }
// 
// Path: src/spring-cloud-cloudfoundry-service-broker/src/main/java/org/springframework/cloud/servicebroker/model/ServiceDefinition.java
// @Getter
// @ToString
// @EqualsAndHashCode
// @JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE)
// @JsonIgnoreProperties(ignoreUnknown = true)
// public class ServiceDefinition {
// 	/**
// 	 * An identifier used to correlate this service in future requests to the catalog. This must be unique within
// 	 * a Cloud Foundry deployment. Using a GUID is recommended.
// 	 */
// 	@NotEmpty
// 	@JsonSerialize
// 	@JsonProperty("id")
// 	private String id;
// 
// 	/**
// 	 * A CLI-friendly name of the service that will appear in the catalog. The value should be all lowercase,
// 	 * with no spaces.
// 	 */
// 	@NotEmpty
// 	@JsonSerialize
// 	@JsonProperty("name")
// 	private String name;
// 
// 	/**
// 	 * A user-friendly short description of the service that will appear in the catalog.
// 	 */
// 	@NotEmpty
// 	@JsonSerialize
// 	@JsonProperty("description")
// 	private String description;
// 
// 	/**
// 	 * Indicates whether the service can be bound to applications.
// 	 */
// 	@JsonSerialize
// 	@JsonProperty("bindable")
// 	private boolean bindable;
// 
// 	/**
// 	 * Indicates whether the service supports requests to update instances to use a different plan from the one
// 	 * used to provision a service instance.
// 	 */
// 	@JsonSerialize
// 	@JsonProperty("plan_updateable")
// 	private boolean planUpdateable;
// 
// 	/**
// 	 * A list of plans for this service.
// 	 */
// 	@NotEmpty
// 	@JsonSerialize(nullsUsing = EmptyListSerializer.class)
// 	@JsonProperty("plans")
// 	private List<Plan> plans;
// 
// 	/**
// 	 * A list of tags to aid in categorizing and classifying services with similar characteristics.
// 	 */
// 	@JsonSerialize(nullsUsing = EmptyListSerializer.class)
// 	@JsonProperty("tags")
// 	private List<String> tags;
// 
// 	/**
// 	 * A map of metadata to further describe a service offering.
// 	 */
// 	@JsonSerialize(nullsUsing = EmptyMapSerializer.class)
// 	@JsonProperty("metadata")
// 	private Map<String, Object> metadata;
// 
// 	/**
// 	 * A list of permissions that the user would have to give the service, if they provision it. See
// 	 * {@link ServiceDefinitionRequires} for supported permissions.
// 	 */
// 	@JsonSerialize(nullsUsing = EmptyListSerializer.class)
// 	@JsonProperty("requires")
// 	private List<String> requires;
// 
// 	/**
// 	 * Data necessary to activate the Dashboard SSO feature for this service.
// 	 */
// 	@JsonSerialize
// 	@JsonProperty("dashboard_client")
// 	private DashboardClient dashboardClient;
// 
// 	public ServiceDefinition() {
// 	}
// 
// 	public ServiceDefinition(String id, String name, String description, boolean bindable, List<Plan> plans) {
// 		this.id = id;
// 		this.name = name;
// 		this.description = description;
// 		this.bindable = bindable;
// 		this.plans = plans;
// 	}
// 
// 	public ServiceDefinition(String id, String name, String description, boolean bindable, boolean planUpdateable,
// 							 List<Plan> plans, List<String> tags, Map<String, Object> metadata, List<String> requires,
// 							 DashboardClient dashboardClient) {
// 		this(id, name, description, bindable, plans);
// 		this.tags = tags;
// 		this.metadata = metadata;
// 		this.requires = requires;
// 		this.planUpdateable = planUpdateable;
// 		this.dashboardClient = dashboardClient;
// 	}
// }


import org.springframework.cloud.servicebroker.model.Catalog;
import org.springframework.cloud.servicebroker.model.ServiceDefinition;
import java.util.Collections;
import java.util.List;
package org.springframework.cloud.servicebroker.model.fixture;



public class CatalogFixture {

	public static Catalog getCatalog() {
		List<ServiceDefinition> services = Collections.singletonList(ServiceFixture.getSimpleService());
		return new Catalog(services);
	}

// Path: src/spring-cloud-cloudfoundry-service-broker/src/main/java/org/springframework/cloud/servicebroker/model/Catalog.java
// @Getter
// @ToString
// @EqualsAndHashCode
// @JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE)
// @JsonIgnoreProperties(ignoreUnknown = true)
// public class Catalog {
// 
// 	/**
// 	 * A list of service offerings provided by the service broker.
// 	 */
// 	@NotEmpty
// 	@JsonSerialize(nullsUsing = EmptyListSerializer.class)
// 	@JsonProperty("services")
// 	private final List<ServiceDefinition> serviceDefinitions;
// 
// 	public Catalog() {
// 		this.serviceDefinitions = null;
// 	}
// 
// 	public Catalog(List<ServiceDefinition> serviceDefinitions) {
// 		this.serviceDefinitions = serviceDefinitions;
// 	}
// }
// 
// Path: src/spring-cloud-cloudfoundry-service-broker/src/main/java/org/springframework/cloud/servicebroker/model/ServiceDefinition.java
// @Getter
// @ToString
// @EqualsAndHashCode
// @JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE)
// @JsonIgnoreProperties(ignoreUnknown = true)
// public class ServiceDefinition {
// 	/**
// 	 * An identifier used to correlate this service in future requests to the catalog. This must be unique within
// 	 * a Cloud Foundry deployment. Using a GUID is recommended.
// 	 */
// 	@NotEmpty
// 	@JsonSerialize
// 	@JsonProperty("id")
// 	private String id;
// 
// 	/**
// 	 * A CLI-friendly name of the service that will appear in the catalog. The value should be all lowercase,
// 	 * with no spaces.
// 	 */
// 	@NotEmpty
// 	@JsonSerialize
// 	@JsonProperty("name")
// 	private String name;
// 
// 	/**
// 	 * A user-friendly short description of the service that will appear in the catalog.
// 	 */
// 	@NotEmpty
// 	@JsonSerialize
// 	@JsonProperty("description")
// 	private String description;
// 
// 	/**
// 	 * Indicates whether the service can be bound to applications.
// 	 */
// 	@JsonSerialize
// 	@JsonProperty("bindable")
// 	private boolean bindable;
// 
// 	/**
// 	 * Indicates whether the service supports requests to update instances to use a different plan from the one
// 	 * used to provision a service instance.
// 	 */
// 	@JsonSerialize
// 	@JsonProperty("plan_updateable")
// 	private boolean planUpdateable;
// 
// 	/**
// 	 * A list of plans for this service.
// 	 */
// 	@NotEmpty
// 	@JsonSerialize(nullsUsing = EmptyListSerializer.class)
// 	@JsonProperty("plans")
// 	private List<Plan> plans;
// 
// 	/**
// 	 * A list of tags to aid in categorizing and classifying services with similar characteristics.
// 	 */
// 	@JsonSerialize(nullsUsing = EmptyListSerializer.class)
// 	@JsonProperty("tags")
// 	private List<String> tags;
// 
// 	/**
// 	 * A map of metadata to further describe a service offering.
// 	 */
// 	@JsonSerialize(nullsUsing = EmptyMapSerializer.class)
// 	@JsonProperty("metadata")
// 	private Map<String, Object> metadata;
// 
// 	/**
// 	 * A list of permissions that the user would have to give the service, if they provision it. See
// 	 * {@link ServiceDefinitionRequires} for supported permissions.
// 	 */
// 	@JsonSerialize(nullsUsing = EmptyListSerializer.class)
// 	@JsonProperty("requires")
// 	private List<String> requires;
// 
// 	/**
// 	 * Data necessary to activate the Dashboard SSO feature for this service.
// 	 */
// 	@JsonSerialize
// 	@JsonProperty("dashboard_client")
// 	private DashboardClient dashboardClient;
// 
// 	public ServiceDefinition() {
// 	}
// 
// 	public ServiceDefinition(String id, String name, String description, boolean bindable, List<Plan> plans) {
// 		this.id = id;
// 		this.name = name;
// 		this.description = description;
// 		this.bindable = bindable;
// 		this.plans = plans;
// 	}
// 
// 	public ServiceDefinition(String id, String name, String description, boolean bindable, boolean planUpdateable,
// 							 List<Plan> plans, List<String> tags, Map<String, Object> metadata, List<String> requires,
// 							 DashboardClient dashboardClient) {
// 		this(id, name, description, bindable, plans);
// 		this.tags = tags;
// 		this.metadata = metadata;
// 		this.requires = requires;
// 		this.planUpdateable = planUpdateable;
// 		this.dashboardClient = dashboardClient;
// 	}
// }


// Path: src/spring-cloud-cloudfoundry-service-broker/src/test/java/org/springframework/cloud/servicebroker/model/fixture/CatalogFixture.java
import org.springframework.cloud.servicebroker.model.Catalog;
import org.springframework.cloud.servicebroker.model.ServiceDefinition;
import java.util.Collections;
import java.util.List;

package org.springframework.cloud.servicebroker.model.fixture;



public class CatalogFixture {

	public static Catalog getCatalog() {
		List<ServiceDefinition> services = Collections.singletonList(ServiceFixture.getSimpleService());
		return new Catalog(services);
	}

	public static Catalog getCatalogWithRequires() {