code: func BasicAuthSecurity(name string, dsl ...func()) *design.SecuritySchemeDefinition {
  	switch dslengine.CurrentDefinition().(type) {
  	case *design.APIDefinition, *dslengine.TopLevelDefinition:
  	default:
  		dslengine.IncompatibleDSL()
  		return nil
  	}
  
  	if securitySchemeRedefined(name) {
  		return nil
  	}
  
  	def := &design.SecuritySchemeDefinition{
  		Kind:       design.BasicAuthSecurityKind,
  		SchemeName: name,
  		Type:       "basic",
  	}
  
  	if len(dsl) != 0 {
  		def.DSLFunc = dsl[0]
  	}
  
  	design.Design.SecuritySchemes = append(design.Design.SecuritySchemes, def)
  
  	return def
  }
docs: // BasicAuthSecurity is a top level DSL.
  // BasicAuthSecurity defines a "basic" security scheme for the API.
  //
  // Example:
  //
  //     BasicAuthSecurity("password", func() {
  //         Description("Use your own password!")
  //     })
  //