///|
fn main {
  let user = @value.object([
    @value.field(
      "schemas",
      @value.list([@value.string(@standard.user_schema_id())]),
    ),
    @value.field("id", @value.string("2819c223-7f76-453a-919d-413861904646")),
    @value.field("userName", @value.string("alice@example.com")),
    @value.field("active", @value.boolean(true)),
    @value.field(
      "emails",
      @value.list([
        @value.object_value([
          @value.field("value", @value.string("alice@example.com")),
          @value.field("type", @value.string("work")),
          @value.field("primary", @value.boolean(true)),
        ]),
      ]),
    ),
  ])
  let validation = @validation.validate_resource(
    @standard.standard_registry(),
    @standard.user_schema_id(),
    user,
    @validation.Create,
  )
  if !validation.is_valid() {
    abort("the provisioning example must remain schema-valid")
  }
  let provisioned = @patch.apply_patch(user, [
    @patch.add("roles", @value.list([@value.string("billing-admin")])),
    @patch.add("displayName", @value.string("Alice Example")),
  ]).unwrap()
  let response_validation = @validation.validate_resource(
    @standard.standard_registry(),
    @standard.user_schema_id(),
    provisioned,
    @validation.Response,
  )
  if !response_validation.is_valid() {
    abort("the provisioned response must remain schema-valid")
  }
  let request = @query.search_request(
    filter="active eq true and roles co \"admin\"",
    sort_by="userName",
    count=25,
  ).unwrap()
  let page = @query.execute_query([provisioned], request).unwrap()
  println(@codec.encode_object(@protocol.list_response(page)).unwrap())
}