func (m *metaAttr) SchemaAttributeNoSub() *Attribute {
	if m.schema == nil {
		m.schema = &Attribute{
			id:    "urn:ietf:params:scim:schemas:core:2.0:Schema",
			name:  "",
			typ:   TypeComplex,
			index: 0,
			path:  "",
		}
	}
	return m.schema
}
SchemaAttributeNoSub returns an attribute to act as the container attribute for schema resources, but it does not
actually contain any sub attributes.
package spec
var (
	metaAttributes = &metaAttr{}
)
func MetaAttributes() *metaAttr {
	return metaAttributes
}
type metaAttr struct {
	coreSchemas *Attribute
	coreId      *Attribute
	coreMeta    *Attribute
	schema            *Attribute
	schemaName        *Attribute
	schemaDescription *Attribute
	schemaAttributes  *Attribute
	attrName            *Attribute
	attrDescription     *Attribute
	attrType            *Attribute
	attrMultiValued     *Attribute
	attrRequired        *Attribute
	attrCaseExact       *Attribute
	attrMutability      *Attribute
	attrReturned        *Attribute
	attrUniqueness      *Attribute
	attrCanonicalValues *Attribute
	attrReferenceTypes  *Attribute
	attrSubAttributes   *Attribute
	resourceType                        *Attribute
	resourceTypeName                    *Attribute
	resourceTypeDescription             *Attribute
	resourceTypeEndpoint                *Attribute
	resourceTypeSchema                  *Attribute
	resourceTypeSchemaExtensions        *Attribute
	resourceTypeSchemaExtensionSchema   *Attribute
	resourceTypeSchemaExtensionRequired *Attribute
}
func (m *metaAttr) CoreSchemasAttribute() *Attribute {
	if m.coreSchemas == nil {
		m.coreSchemas = &Attribute{
			id:          "schemas",
			name:        "schemas",
			typ:         TypeString,
			multiValued: true,
			index:       0,
			path:        "schemas",
		}
	}
	return m.coreSchemas
}
func (m *metaAttr) CoreIdAttribute() *Attribute {
	if m.coreId == nil {
		m.coreId = &Attribute{
			id:    "id",
			name:  "id",
			typ:   TypeString,
			index: 1,
			path:  "id",
		}
	}
	return m.coreId
}
func (m *metaAttr) CoreMetaPartialAttribute() *Attribute {
	if m.coreMeta == nil {
		m.coreMeta = &Attribute{
			id:    "meta",
			name:  "meta",
			typ:   TypeComplex,
			index: 2,
			path:  "meta",
			subAttributes: []*Attribute{
				{
					id:    "meta.resourceType",
					name:  "resourceType",
					typ:   TypeString,
					index: 0,
					path:  "meta.resourceType",
				},
				{
					id:    "meta.location",
					name:  "location",
					typ:   TypeString,
					index: 1,
					path:  "meta.location",
				},
			},
		}
	}
	return m.coreMeta
}