context.go raw

   1  package middleware
   2  
   3  import "context"
   4  
   5  type (
   6  	serviceIDKey     struct{}
   7  	operationNameKey struct{}
   8  )
   9  
  10  // WithServiceID adds a service ID to the context, scoped to middleware stack
  11  // values.
  12  //
  13  // This API is called in the client runtime when bootstrapping an operation and
  14  // should not typically be used directly.
  15  func WithServiceID(parent context.Context, id string) context.Context {
  16  	return WithStackValue(parent, serviceIDKey{}, id)
  17  }
  18  
  19  // GetServiceID retrieves the service ID from the context. This is typically
  20  // the service shape's name from its Smithy model. Service clients for specific
  21  // systems (e.g. AWS SDK) may use an alternate designated value.
  22  func GetServiceID(ctx context.Context) string {
  23  	id, _ := GetStackValue(ctx, serviceIDKey{}).(string)
  24  	return id
  25  }
  26  
  27  // WithOperationName adds the operation name to the context, scoped to
  28  // middleware stack values.
  29  //
  30  // This API is called in the client runtime when bootstrapping an operation and
  31  // should not typically be used directly.
  32  func WithOperationName(parent context.Context, id string) context.Context {
  33  	return WithStackValue(parent, operationNameKey{}, id)
  34  }
  35  
  36  // GetOperationName retrieves the operation name from the context. This is
  37  // typically the operation shape's name from its Smithy model.
  38  func GetOperationName(ctx context.Context) string {
  39  	name, _ := GetStackValue(ctx, operationNameKey{}).(string)
  40  	return name
  41  }
  42