code: func (c *Client) UpdateWAFRuleTagStatus(input *UpdateWAFRuleTagStatusInput) (GetWAFRuleStatusesResponse, error) {
  	if err := input.validate(); err != nil {
  		return GetWAFRuleStatusesResponse{}, err
  	}
  
  	path := fmt.Sprintf("/service/%s/wafs/%s/rule_statuses", input.Service, input.WAF)
  
  	body := updateWAFRuleTagStatusBody{
  		Data: updateWAFRuleTagStatusData{
  			Type:       "rule_status",
  			Attributes: input,
  		},
  	}
  	encoded, err := json.Marshal(body)
  	if err != nil {
  		return GetWAFRuleStatusesResponse{}, err
  	}
  
  	options := &RequestOptions{
  		Body: bytes.NewReader(encoded),
  		Headers: map[string]string{
  			"Content-Type": jsonapi.MediaType,
  			"Accept":       jsonapi.MediaType,
  		},
  	}
  
  	resp, err := c.Post(path, options)
  	if err != nil {
  		return GetWAFRuleStatusesResponse{}, err
  	}
  
  	statusResponse := GetWAFRuleStatusesResponse{Rules: []*WAFRuleStatus{}}
  	err = c.interpretWAFRuleStatusesPage(&statusResponse, resp)
  
  	return statusResponse, err
  }
docs: // UpdateWAFRuleTagStatus changes the status of a single rule associated with a WAF.
  // NOTE: This call currently appears to return *all* rules attached to the WAF, rather
  // than just the ones that were modified by the call.