-
Notifications
You must be signed in to change notification settings - Fork 39
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #819 from microsoftgraph/v1.0/pipelinebuild/175190
Generated models and request builders
- Loading branch information
Showing
110 changed files
with
4,895 additions
and
227 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,126 @@ | ||
package chats | ||
|
||
import ( | ||
i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91 "github.com/microsoft/kiota-abstractions-go/serialization" | ||
iadcd81124412c61e647227ecfc4449d8bba17de0380ddda76f641a29edf2b242 "github.com/microsoftgraph/msgraph-sdk-go/models" | ||
ie8677ce2c7e1b4c22e9c3827ecd078d41185424dd9eeb92b7d971ed2d49a392e "github.com/microsoft/kiota-abstractions-go/store" | ||
) | ||
|
||
type ItemMembersRemovePostRequestBody struct { | ||
// Stores model information. | ||
backingStore ie8677ce2c7e1b4c22e9c3827ecd078d41185424dd9eeb92b7d971ed2d49a392e.BackingStore | ||
} | ||
// NewItemMembersRemovePostRequestBody instantiates a new ItemMembersRemovePostRequestBody and sets the default values. | ||
func NewItemMembersRemovePostRequestBody()(*ItemMembersRemovePostRequestBody) { | ||
m := &ItemMembersRemovePostRequestBody{ | ||
} | ||
m.backingStore = ie8677ce2c7e1b4c22e9c3827ecd078d41185424dd9eeb92b7d971ed2d49a392e.BackingStoreFactoryInstance(); | ||
m.SetAdditionalData(make(map[string]any)) | ||
return m | ||
} | ||
// CreateItemMembersRemovePostRequestBodyFromDiscriminatorValue creates a new instance of the appropriate class based on discriminator value | ||
// returns a Parsable when successful | ||
func CreateItemMembersRemovePostRequestBodyFromDiscriminatorValue(parseNode i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.ParseNode)(i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.Parsable, error) { | ||
return NewItemMembersRemovePostRequestBody(), nil | ||
} | ||
// GetAdditionalData gets the AdditionalData property value. Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well. | ||
// returns a map[string]any when successful | ||
func (m *ItemMembersRemovePostRequestBody) GetAdditionalData()(map[string]any) { | ||
val , err := m.backingStore.Get("additionalData") | ||
if err != nil { | ||
panic(err) | ||
} | ||
if val == nil { | ||
var value = make(map[string]any); | ||
m.SetAdditionalData(value); | ||
} | ||
return val.(map[string]any) | ||
} | ||
// GetBackingStore gets the BackingStore property value. Stores model information. | ||
// returns a BackingStore when successful | ||
func (m *ItemMembersRemovePostRequestBody) GetBackingStore()(ie8677ce2c7e1b4c22e9c3827ecd078d41185424dd9eeb92b7d971ed2d49a392e.BackingStore) { | ||
return m.backingStore | ||
} | ||
// GetFieldDeserializers the deserialization information for the current model | ||
// returns a map[string]func(i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.ParseNode)(error) when successful | ||
func (m *ItemMembersRemovePostRequestBody) GetFieldDeserializers()(map[string]func(i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.ParseNode)(error)) { | ||
res := make(map[string]func(i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.ParseNode)(error)) | ||
res["values"] = func (n i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.ParseNode) error { | ||
val, err := n.GetCollectionOfObjectValues(iadcd81124412c61e647227ecfc4449d8bba17de0380ddda76f641a29edf2b242.CreateConversationMemberFromDiscriminatorValue) | ||
if err != nil { | ||
return err | ||
} | ||
if val != nil { | ||
res := make([]iadcd81124412c61e647227ecfc4449d8bba17de0380ddda76f641a29edf2b242.ConversationMemberable, len(val)) | ||
for i, v := range val { | ||
if v != nil { | ||
res[i] = v.(iadcd81124412c61e647227ecfc4449d8bba17de0380ddda76f641a29edf2b242.ConversationMemberable) | ||
} | ||
} | ||
m.SetValues(res) | ||
} | ||
return nil | ||
} | ||
return res | ||
} | ||
// GetValues gets the values property value. The values property | ||
// returns a []ConversationMemberable when successful | ||
func (m *ItemMembersRemovePostRequestBody) GetValues()([]iadcd81124412c61e647227ecfc4449d8bba17de0380ddda76f641a29edf2b242.ConversationMemberable) { | ||
val, err := m.GetBackingStore().Get("values") | ||
if err != nil { | ||
panic(err) | ||
} | ||
if val != nil { | ||
return val.([]iadcd81124412c61e647227ecfc4449d8bba17de0380ddda76f641a29edf2b242.ConversationMemberable) | ||
} | ||
return nil | ||
} | ||
// Serialize serializes information the current object | ||
func (m *ItemMembersRemovePostRequestBody) Serialize(writer i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.SerializationWriter)(error) { | ||
if m.GetValues() != nil { | ||
cast := make([]i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.Parsable, len(m.GetValues())) | ||
for i, v := range m.GetValues() { | ||
if v != nil { | ||
cast[i] = v.(i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.Parsable) | ||
} | ||
} | ||
err := writer.WriteCollectionOfObjectValues("values", cast) | ||
if err != nil { | ||
return err | ||
} | ||
} | ||
{ | ||
err := writer.WriteAdditionalData(m.GetAdditionalData()) | ||
if err != nil { | ||
return err | ||
} | ||
} | ||
return nil | ||
} | ||
// SetAdditionalData sets the AdditionalData property value. Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well. | ||
func (m *ItemMembersRemovePostRequestBody) SetAdditionalData(value map[string]any)() { | ||
err := m.GetBackingStore().Set("additionalData", value) | ||
if err != nil { | ||
panic(err) | ||
} | ||
} | ||
// SetBackingStore sets the BackingStore property value. Stores model information. | ||
func (m *ItemMembersRemovePostRequestBody) SetBackingStore(value ie8677ce2c7e1b4c22e9c3827ecd078d41185424dd9eeb92b7d971ed2d49a392e.BackingStore)() { | ||
m.backingStore = value | ||
} | ||
// SetValues sets the values property value. The values property | ||
func (m *ItemMembersRemovePostRequestBody) SetValues(value []iadcd81124412c61e647227ecfc4449d8bba17de0380ddda76f641a29edf2b242.ConversationMemberable)() { | ||
err := m.GetBackingStore().Set("values", value) | ||
if err != nil { | ||
panic(err) | ||
} | ||
} | ||
type ItemMembersRemovePostRequestBodyable interface { | ||
i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.AdditionalDataHolder | ||
ie8677ce2c7e1b4c22e9c3827ecd078d41185424dd9eeb92b7d971ed2d49a392e.BackedModel | ||
i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.Parsable | ||
GetBackingStore()(ie8677ce2c7e1b4c22e9c3827ecd078d41185424dd9eeb92b7d971ed2d49a392e.BackingStore) | ||
GetValues()([]iadcd81124412c61e647227ecfc4449d8bba17de0380ddda76f641a29edf2b242.ConversationMemberable) | ||
SetBackingStore(value ie8677ce2c7e1b4c22e9c3827ecd078d41185424dd9eeb92b7d971ed2d49a392e.BackingStore)() | ||
SetValues(value []iadcd81124412c61e647227ecfc4449d8bba17de0380ddda76f641a29edf2b242.ConversationMemberable)() | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
package chats | ||
|
||
import ( | ||
i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91 "github.com/microsoft/kiota-abstractions-go/serialization" | ||
iadcd81124412c61e647227ecfc4449d8bba17de0380ddda76f641a29edf2b242 "github.com/microsoftgraph/msgraph-sdk-go/models" | ||
) | ||
|
||
type ItemMembersRemovePostResponse struct { | ||
iadcd81124412c61e647227ecfc4449d8bba17de0380ddda76f641a29edf2b242.BaseCollectionPaginationCountResponse | ||
} | ||
// NewItemMembersRemovePostResponse instantiates a new ItemMembersRemovePostResponse and sets the default values. | ||
func NewItemMembersRemovePostResponse()(*ItemMembersRemovePostResponse) { | ||
m := &ItemMembersRemovePostResponse{ | ||
BaseCollectionPaginationCountResponse: *iadcd81124412c61e647227ecfc4449d8bba17de0380ddda76f641a29edf2b242.NewBaseCollectionPaginationCountResponse(), | ||
} | ||
return m | ||
} | ||
// CreateItemMembersRemovePostResponseFromDiscriminatorValue creates a new instance of the appropriate class based on discriminator value | ||
// returns a Parsable when successful | ||
func CreateItemMembersRemovePostResponseFromDiscriminatorValue(parseNode i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.ParseNode)(i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.Parsable, error) { | ||
return NewItemMembersRemovePostResponse(), nil | ||
} | ||
// GetFieldDeserializers the deserialization information for the current model | ||
// returns a map[string]func(i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.ParseNode)(error) when successful | ||
func (m *ItemMembersRemovePostResponse) GetFieldDeserializers()(map[string]func(i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.ParseNode)(error)) { | ||
res := m.BaseCollectionPaginationCountResponse.GetFieldDeserializers() | ||
res["value"] = func (n i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.ParseNode) error { | ||
val, err := n.GetCollectionOfObjectValues(iadcd81124412c61e647227ecfc4449d8bba17de0380ddda76f641a29edf2b242.CreateActionResultPartFromDiscriminatorValue) | ||
if err != nil { | ||
return err | ||
} | ||
if val != nil { | ||
res := make([]iadcd81124412c61e647227ecfc4449d8bba17de0380ddda76f641a29edf2b242.ActionResultPartable, len(val)) | ||
for i, v := range val { | ||
if v != nil { | ||
res[i] = v.(iadcd81124412c61e647227ecfc4449d8bba17de0380ddda76f641a29edf2b242.ActionResultPartable) | ||
} | ||
} | ||
m.SetValue(res) | ||
} | ||
return nil | ||
} | ||
return res | ||
} | ||
// GetValue gets the value property value. The value property | ||
// returns a []ActionResultPartable when successful | ||
func (m *ItemMembersRemovePostResponse) GetValue()([]iadcd81124412c61e647227ecfc4449d8bba17de0380ddda76f641a29edf2b242.ActionResultPartable) { | ||
val, err := m.GetBackingStore().Get("value") | ||
if err != nil { | ||
panic(err) | ||
} | ||
if val != nil { | ||
return val.([]iadcd81124412c61e647227ecfc4449d8bba17de0380ddda76f641a29edf2b242.ActionResultPartable) | ||
} | ||
return nil | ||
} | ||
// Serialize serializes information the current object | ||
func (m *ItemMembersRemovePostResponse) Serialize(writer i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.SerializationWriter)(error) { | ||
err := m.BaseCollectionPaginationCountResponse.Serialize(writer) | ||
if err != nil { | ||
return err | ||
} | ||
if m.GetValue() != nil { | ||
cast := make([]i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.Parsable, len(m.GetValue())) | ||
for i, v := range m.GetValue() { | ||
if v != nil { | ||
cast[i] = v.(i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.Parsable) | ||
} | ||
} | ||
err = writer.WriteCollectionOfObjectValues("value", cast) | ||
if err != nil { | ||
return err | ||
} | ||
} | ||
return nil | ||
} | ||
// SetValue sets the value property value. The value property | ||
func (m *ItemMembersRemovePostResponse) SetValue(value []iadcd81124412c61e647227ecfc4449d8bba17de0380ddda76f641a29edf2b242.ActionResultPartable)() { | ||
err := m.GetBackingStore().Set("value", value) | ||
if err != nil { | ||
panic(err) | ||
} | ||
} | ||
type ItemMembersRemovePostResponseable interface { | ||
iadcd81124412c61e647227ecfc4449d8bba17de0380ddda76f641a29edf2b242.BaseCollectionPaginationCountResponseable | ||
i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.Parsable | ||
GetValue()([]iadcd81124412c61e647227ecfc4449d8bba17de0380ddda76f641a29edf2b242.ActionResultPartable) | ||
SetValue(value []iadcd81124412c61e647227ecfc4449d8bba17de0380ddda76f641a29edf2b242.ActionResultPartable)() | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
package chats | ||
|
||
import ( | ||
"context" | ||
i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f "github.com/microsoft/kiota-abstractions-go" | ||
ia572726a95efa92ddd544552cd950653dc691023836923576b2f4bf716cf204a "github.com/microsoftgraph/msgraph-sdk-go/models/odataerrors" | ||
) | ||
|
||
// ItemMembersRemoveRequestBuilder provides operations to call the remove method. | ||
type ItemMembersRemoveRequestBuilder struct { | ||
i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.BaseRequestBuilder | ||
} | ||
// ItemMembersRemoveRequestBuilderPostRequestConfiguration configuration for the request such as headers, query parameters, and middleware options. | ||
type ItemMembersRemoveRequestBuilderPostRequestConfiguration struct { | ||
// Request headers | ||
Headers *i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.RequestHeaders | ||
// Request options | ||
Options []i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.RequestOption | ||
} | ||
// NewItemMembersRemoveRequestBuilderInternal instantiates a new ItemMembersRemoveRequestBuilder and sets the default values. | ||
func NewItemMembersRemoveRequestBuilderInternal(pathParameters map[string]string, requestAdapter i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.RequestAdapter)(*ItemMembersRemoveRequestBuilder) { | ||
m := &ItemMembersRemoveRequestBuilder{ | ||
BaseRequestBuilder: *i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.NewBaseRequestBuilder(requestAdapter, "{+baseurl}/chats/{chat%2Did}/members/remove", pathParameters), | ||
} | ||
return m | ||
} | ||
// NewItemMembersRemoveRequestBuilder instantiates a new ItemMembersRemoveRequestBuilder and sets the default values. | ||
func NewItemMembersRemoveRequestBuilder(rawUrl string, requestAdapter i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.RequestAdapter)(*ItemMembersRemoveRequestBuilder) { | ||
urlParams := make(map[string]string) | ||
urlParams["request-raw-url"] = rawUrl | ||
return NewItemMembersRemoveRequestBuilderInternal(urlParams, requestAdapter) | ||
} | ||
// Post remove multiple members from a team in a single request. The response provides details about which memberships could and couldn't be removed. | ||
// Deprecated: This method is obsolete. Use PostAsRemovePostResponse instead. | ||
// returns a ItemMembersRemoveResponseable when successful | ||
// returns a ODataError error when the service returns a 4XX or 5XX status code | ||
// [Find more info here] | ||
// | ||
// [Find more info here]: https://learn.microsoft.com/graph/api/conversationmember-remove?view=graph-rest-1.0 | ||
func (m *ItemMembersRemoveRequestBuilder) Post(ctx context.Context, body ItemMembersRemovePostRequestBodyable, requestConfiguration *ItemMembersRemoveRequestBuilderPostRequestConfiguration)(ItemMembersRemoveResponseable, error) { | ||
requestInfo, err := m.ToPostRequestInformation(ctx, body, requestConfiguration); | ||
if err != nil { | ||
return nil, err | ||
} | ||
errorMapping := i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.ErrorMappings { | ||
"XXX": ia572726a95efa92ddd544552cd950653dc691023836923576b2f4bf716cf204a.CreateODataErrorFromDiscriminatorValue, | ||
} | ||
res, err := m.BaseRequestBuilder.RequestAdapter.Send(ctx, requestInfo, CreateItemMembersRemoveResponseFromDiscriminatorValue, errorMapping) | ||
if err != nil { | ||
return nil, err | ||
} | ||
if res == nil { | ||
return nil, nil | ||
} | ||
return res.(ItemMembersRemoveResponseable), nil | ||
} | ||
// PostAsRemovePostResponse remove multiple members from a team in a single request. The response provides details about which memberships could and couldn't be removed. | ||
// returns a ItemMembersRemovePostResponseable when successful | ||
// returns a ODataError error when the service returns a 4XX or 5XX status code | ||
// [Find more info here] | ||
// | ||
// [Find more info here]: https://learn.microsoft.com/graph/api/conversationmember-remove?view=graph-rest-1.0 | ||
func (m *ItemMembersRemoveRequestBuilder) PostAsRemovePostResponse(ctx context.Context, body ItemMembersRemovePostRequestBodyable, requestConfiguration *ItemMembersRemoveRequestBuilderPostRequestConfiguration)(ItemMembersRemovePostResponseable, error) { | ||
requestInfo, err := m.ToPostRequestInformation(ctx, body, requestConfiguration); | ||
if err != nil { | ||
return nil, err | ||
} | ||
errorMapping := i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.ErrorMappings { | ||
"XXX": ia572726a95efa92ddd544552cd950653dc691023836923576b2f4bf716cf204a.CreateODataErrorFromDiscriminatorValue, | ||
} | ||
res, err := m.BaseRequestBuilder.RequestAdapter.Send(ctx, requestInfo, CreateItemMembersRemovePostResponseFromDiscriminatorValue, errorMapping) | ||
if err != nil { | ||
return nil, err | ||
} | ||
if res == nil { | ||
return nil, nil | ||
} | ||
return res.(ItemMembersRemovePostResponseable), nil | ||
} | ||
// ToPostRequestInformation remove multiple members from a team in a single request. The response provides details about which memberships could and couldn't be removed. | ||
// returns a *RequestInformation when successful | ||
func (m *ItemMembersRemoveRequestBuilder) ToPostRequestInformation(ctx context.Context, body ItemMembersRemovePostRequestBodyable, requestConfiguration *ItemMembersRemoveRequestBuilderPostRequestConfiguration)(*i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.RequestInformation, error) { | ||
requestInfo := i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.NewRequestInformationWithMethodAndUrlTemplateAndPathParameters(i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.POST, m.BaseRequestBuilder.UrlTemplate, m.BaseRequestBuilder.PathParameters) | ||
if requestConfiguration != nil { | ||
requestInfo.Headers.AddAll(requestConfiguration.Headers) | ||
requestInfo.AddRequestOptions(requestConfiguration.Options) | ||
} | ||
requestInfo.Headers.TryAdd("Accept", "application/json") | ||
err := requestInfo.SetContentFromParsable(ctx, m.BaseRequestBuilder.RequestAdapter, "application/json", body) | ||
if err != nil { | ||
return nil, err | ||
} | ||
return requestInfo, nil | ||
} | ||
// WithUrl returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. | ||
// returns a *ItemMembersRemoveRequestBuilder when successful | ||
func (m *ItemMembersRemoveRequestBuilder) WithUrl(rawUrl string)(*ItemMembersRemoveRequestBuilder) { | ||
return NewItemMembersRemoveRequestBuilder(rawUrl, m.BaseRequestBuilder.RequestAdapter); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
package chats | ||
|
||
import ( | ||
i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91 "github.com/microsoft/kiota-abstractions-go/serialization" | ||
) | ||
|
||
// Deprecated: This class is obsolete. Use ItemMembersRemovePostResponseable instead. | ||
type ItemMembersRemoveResponse struct { | ||
ItemMembersRemovePostResponse | ||
} | ||
// NewItemMembersRemoveResponse instantiates a new ItemMembersRemoveResponse and sets the default values. | ||
func NewItemMembersRemoveResponse()(*ItemMembersRemoveResponse) { | ||
m := &ItemMembersRemoveResponse{ | ||
ItemMembersRemovePostResponse: *NewItemMembersRemovePostResponse(), | ||
} | ||
return m | ||
} | ||
// CreateItemMembersRemoveResponseFromDiscriminatorValue creates a new instance of the appropriate class based on discriminator value | ||
// returns a Parsable when successful | ||
func CreateItemMembersRemoveResponseFromDiscriminatorValue(parseNode i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.ParseNode)(i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.Parsable, error) { | ||
return NewItemMembersRemoveResponse(), nil | ||
} | ||
// Deprecated: This class is obsolete. Use ItemMembersRemovePostResponseable instead. | ||
type ItemMembersRemoveResponseable interface { | ||
ItemMembersRemovePostResponseable | ||
i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.Parsable | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.