code: func (d *ResourceData) GetOk(key string) (interface{}, bool) {
  	r := d.getRaw(key, getSourceSet)
  	exists := r.Exists && !r.Computed
  	if exists {
  		// If it exists, we also want to verify it is not the zero-value.
  		value := r.Value
  		zero := r.Schema.Type.Zero()
  
  		if eq, ok := value.(Equal); ok {
  			exists = !eq.Equal(zero)
  		} else {
  			exists = !reflect.DeepEqual(value, zero)
  		}
  	}
  
  	return r.Value, exists
  }
docs: // GetOk returns the data for the given key and whether or not the key
  // has been set to a non-zero value at some point.
  //
  // The first result will not necessarilly be nil if the value doesn't exist.
  // The second result should be checked to determine this information.